5.ルート5 100万桁

2.2360679774997896964091736687312762354406183596115257242708972454105209256378048994144144083787822749695081761507737835042532677244470738635863601215334527088667781731918791658112766453226398565805357613504175337850034233924140644420864325390972525926272288762995174024406816117759089094984923713907297288984820886415426898940991316935770197486788844250897541329561831769214999774248015304341150359576683325124988151781394080005624208552435422355561063063428202340933319829339597463522712013417496142026359047378855043896870611356600457571399565955669569175645782219525000605392312340050092867648755297220567662536660744858535052623306784946334222423176372770266324076801044433158257335058930981362263431986864719469899701808189524264459620345221411922329125981963258111041704958070481204034559949435068555518555725123886416550102624363125710244496187894246829034044747161154557232017376765904609185295756035779843980541553807790643936397230287560629994822138521773485924535151210463455550407072278724215347787529112121211843317893351910380080111181790045906188462496471042442483088801294068113146959532794478989989316915774607924618075006798771242048473805027736082915599139624489149435606834625290644083279446426808889897460463083535378750420613747576068834018790881925591179735744641902485378711461940901919136880351103976384360412810581103786989518520146970456420217638928908844463778263858937924400460288754053984601560617052236150903857754100421936849872542718503752155576933167230047782698666624462106784642724863852745782134100679856453052711241805959728494551954513101723097508714965294362829025400120477803241554644899887061779981900336065622438864096392877535172662959714382279563079561495230154442350165389172786409130419793971113562821393674576811749220675621088878188736716716276226233798771115395096829828906830182590814010038955097232615084528345878936073463961172366783665719826079214402891190089955842415224957129183232167411899757201394037881977280152887234186683454183828673002743153202296076286125247610286423469630201118026912202360158101276284305418617176185751406901015616290917639812672259655962823490678546241618579455844426596128589375648549748034901108135575141664746219518302355259568865694958163530361955745368322352650077224225828736687534047007422326614517397665174206726444762196180242203979835368298350246626803054676876744690018695720995858919831644025162091964618510574424827408722982041094371099223617528531530221210917629512088635695971690794625726032508975222970404341288082233215339011955156651407902217564616542129578780422313820785536769077266664313165931954620687206464509148727440824881281776534751686790735918624644268746419914997789399131294720145919996782576206394852625035942828640246225591037895563453828317823559839129625116003691013126590571971820018172436059551275785199832998928563860445871046933495186539033084280421827260363894454157802441745747234146972999963125109456227469597433139054978016288768106549675627564933834888459269829416314014705091414179545350938687645239093723066241906715847602921854702042023838043672135019461791505791549362845908678877098631067926076145833835169220292199011012960735860829447314407972014710152180463462500322640968716729635409696362198320488504654334438037866919275721757505740347871860602671802247420478342531809405269880566153375348727730265421256064634813863466896468712906370116270621709946670151993355742489811672735082657817248126491279071442504852234055605731208646988567460345114881167455653599206347872802657525540248735966228928738953410625449848209433400276495662573130129868683607800820356106790117544917331151045878316479416835459667456462305138521859918844800011212533573487158479449081696353039468725305378897771054405495574946719670734555228151834241026538689675059832999618720492356885351455535800383838140761044092246496478265220865438336902461204725578709086492353995150737808352730050957027649262931667276675204715579853459772643237167918072799636769165528982491961874086111119227594686522696609898993736217907139269656356257725072921684067893076388838914285333647436789836647418171497005331360797948813242107206128005216342253319908398737463218914457762184155764554407273368963065123456823538195853333104476937662274370598384326381040313726244564143119975293684710411857074351561531210073546261950382447947774449365161143194891480968597561470443196853353251561541240388608010851003166250060350681882343820385978076894500665976049002873593688338959190906091820627623243740913599573273234921191400068919402270503626920131310704069577623482998825496528304271135527880781420774176364676136067000760936003496164411821936884052892804375410680200636057633288306182787896312806385645570964829021006377650379940149724575884311791485640433314124376181156176100649353982594574420774147394812871334917840517313147957121719133068214071995664089267269297097899532777070209105459648458139969770739365609291949152530286871810187664248748666774103331429801181421134049775971608743630252200880762976081450488123285804495645430544822417013157767742498727021361273033348644465553551159479854075246382940946479102412141100798417688520741758168666852367682719415632965910742864392237900759542926001511195075914071045428986382643451128802566183610090017984374102423721386714630779187015806014734540466283306408468031074828853743081102329592228664604970880818813822912279746052079036563360689650508653477151801120864049074543858249729162666883397059878271495739791597287899604609423393431472456782403625462583317990551983844063674471365455877127466253095997182492655006012118513490995887017623859011370986518710637458283602272824374941505256213739660271521049438891186439107192209056606297678235386023931716686288497897971311685016682188590055439516670448858251472987615083422747848752028701365975698654259950245737639209967155031754356082139426393350695438958452730380326795425694781586722223828179966112067221219743435661108708071217905858163692828742785887562712096407789582514901541511502060048414532580036180845868498851812133228266457445396138029198902399095603279830282522505145656132866252331493877639021288433477436000220084369660516183308676749847282367777129370286300127463808590296293884862921790509414407481113382613844198160963890595022130092856210835510518190374263776718295319920826359204188306171710664775450760465455265954744286255936433432468842366403605762825494886337694436918785562870948199998144466406118525953222476655966633976507862524013007405768956573338808946158942095225117316750597247250199964646719431014467676664881630515563867285252608660531791634160090255774623187117549443451298940010327334515430784196819006549022430737460182439925904553182632741879372145426853852463095066087598663316221473928628434395886811278310242162162725253777139496136120233837883500544597483173983582906998924888388024395717202747321657381444730295427825374841933027575124118370865777668348584180312626656638715124417942753126195700312630996491289173084958587144565750121696290670270436345917586598234200649524441043892902107249010259768617426888790144885347029257235983664672919673927526544515138319447908766104173294948476302215854698967390479295853798739664983599900557900012091932262692672604989990296161065803580595036503175009801487037596702367206544554520343480907114331771115659458212391638703421109651586141820115271739803859443599033746235112628897129620044002850908110858546917674232041989589144164756087374378896112737836516048899926375668405498203067158214546725065781386694824760444402325255423861708970059083826400801999731133303551328190731239579563676090206071302026317891780574372217381178789427360296914003673299129440658866874859789285482510287181168696818390974030472280634782780723288039691010209824233958400240399921013989932806070172738580788201403890106403246974552646546489887926096178110850275944662950370414182050127371963359060963620147884906340047760951966864690082851686281272254421920456484675645618055953192155421698783034977463375542704478018234234701837201309240198049951705558508556331940766990116021252310667382187569319542105950044634614824355668837882369193172205960375574854891277339322554490076917210528302060817965155550894823066415281517633550299510760942325933554201175329231909935538541099247879714185101405481399562816862499307261437330674361211748448519633061410514766908315410858432599622983501722262353154634419123131295739094897854264121612709155892482906213396748422759633792764706660895576633867945745783620732816653971397650887703335172457986139286936979502968175807929520840722041204343478894052697526730878639045815476723347796235624849673115621006833890312725208600733148621695330975556025715584729083704489447234274845851168318627122573274334065614434310678529265146134612782170821773617148567717656120460668281710078194707745226902392585283199042557862270886292030546180510765420865193245348780749112722457227815663886714118007629740179732263079639171488466088394171339344458628546148276976557795117772159947740894040633366971388398193096059649863963531585365971125944602136555447032548156761486375565463642383939056010321758314425765267593646254512574000300036585951545998715818983928152688572315142708885579676608090940542038916008516404240468916126069006731629443709840735997994587070783936242663903307594907982229884889036606771768258080363563764275201331856988273550863490321081877422073743042328081164386894240896555192108338972907975665253909602783003807799186261340637323341327439280513857342777429326237838537136538399055291599543655751892192323443773621890930315773824482121962839453723851095757985263071894584565016108503381362802156359204377066152461112763263280384490900651531347851995303506160285432142861743772571967207493011426840934016686550846055409558662236733380646577061374775981427180148060981491977902729537521735688647649643786123514063912760646163943872713454839287745251741230866145927407625503034081201011518976544771269031278105315420852918952081113901919681777807524159913277603572371183188822345018462655954227606588753095018033033899301983214766787543166646049140389669480014087523734399696680326365201692523931256929823645137771504269275098050836166764276704449051745357875901075183120715890939701820451245091000603514209893966696709064767052157418443860916356461202474150656135673708261316927357773286697249873602039756559926134051908653027561201477278581712966174831523748379469169690028377953058682202744431728711983105422724664400705335571831978046289232664205303933181526412304876749523809906316593767253008418968021130917826125965543449961928391894468093022083964269537870803607651390991257207848852831973497196456012070772567833240250565321498661239316993039995883878645203447142146728507416606602286724997150727194084889295199799990171008270995511717186915318185306661450555083351686293387353561234070024007689749767646752068815503189556244376614180017477325472418332159810045397854064379952075901978118217182078593469122922140060916384254778519853922124233528728487670028204081726429983563059593630447596644854750731401710693995931082771810065367232044557695109412539687821770420604153720941360911369312098337299772123244590464781419618525860467591296435996326529165577775534904169274394212695784621335093871009523039556339805176368081585502180364896557410501195396750702861244890180440476487964625101168324641437663860138721292936419319001309858021943237305273443221483427236755334665595125370960249131536558063520789311078904628677513546069958315717718202332749691135169590542783721756508020846665971488549423793922097025280395008719818415324311799732147367524637671769016258590022933070965634289692811373049308181563094323925156893915052513891033120303832805843597709781874656062930384449518006193143098101072208755373754523831905689840929573794694741719682769026324238594402526848154738909196373005931846706902513690994908225963947175334145720323211240846127213226056299354689159547550111512933095051264529635423399571417424566308620913824652500699536230490434899479227349764409296103937750868393902386624090043210285876968950904764254028766191571162723935660462137016169175390411810658936676980942419832511273006800687934165786739673484600315023477030253824613234455282884321502583468374942863018648384982832193999734563164771851471964778969854983929230454454667749262427687252423275893412406526045011097916114616750092259846227259834613897881468517663896799854832790196887926811527056943512552438557304507921744026216097281306879233775090506852619793903523803954192638451741868433191194894350031507675348304456114130056136628671304983439946671680612830710151823194852873296569325627360434901181941178920548858526444443091890151609314241213727980861647387938641647498153512238034312261084962662343048513695692672754003040883583300233646515047232099149941278164488688902070243809763966055200353361970193049087801439819606998605372135104775937058438946478670474017330044281492910807444468696335149874628928185675801307839354802071172387236313367323372978479110992290565294578998832123160609173578292394345631090220011332108499938394820559748118655286990742905033538924139719576189390034946045682855143774388184241827598811886074100872967720086929045598660584780373184537974998422651312111568028467085211790211240738144057878631840880953671855272959920119280972152397831859638990175757205532691981080852754009180160655886944125965089051271295908598497639729227234262897154693990695115431098276847857880350806827994769233896258695848446921948603925504602765721444899276190767680305313563952901517709571031098469046956329206612587768401990160652028183660514877154134205045448733381197781709003114150846063333184944705784940517724958977509250553145457030222575654134690862048903046691308456862207935905659250038739787996694792352797619147083052029074592936294764368720104219894423883318298943341040758451041926729169693608289556060432945724799852809672701754749564900327640179048064506875985158025853128031107550818350340883925457007825339191332975448593532073460690733746809815828377389042943165581631446793824807997173878171034615960391109225702681782412216802442723414114086012113849371183293766954664171378282535885689608276936562651385829632021957254539373373474783423786292453826978916085557979921628941904952581003852062329841373548663732309393379320364532715757750121771248712535786559470926780836421754927607843248954405134539919278364937557691099435807703167840949663980625524487413247018503755086828021422467173181549624412752691803976845094545531058100879900504888078227316534162660116117641892062041652268273825514587398578605992346178568734063047717950797477787361488305274758848101289752834353722710468653973145794092613836034855594434777971888656970411451517667512764030109344130334850536378970334665609261529562658626520578645873209042042637962597532305248897497338778081235693983333083497016919594029235643169002983914421965017846903494902450865477363945172988917616754279737013196817091546330833834813410422389833257267546452750695133274004424065504877999547201214808540594440726955609659766971037905015894921103988068022154233945128852201018411968672507169413919437152523355326042349575668395128900367608205840648081765323468867818052704470101365716570886567923696185075226164023125373981599823416951117396430062014712648084397713916840136487985390756880640444474925629531846121109495387366115309935538094231925100494901561924967489981605122750183124471816202106898788354858855418289033333740083045708927615323070228311297570987202277494620765754662677678341929234965812631357613036552353159707004333199721492802534976824226019709987667421206392501340559504862023875467109707402338934971777672616066657547914331255068073454436141124512465274829766699857994051795459844807388350148685462838831486493358915717207978815019471272737763134431935270876133118787786876415196812243212863532884380535554759829115989006293741743253245304826718113985698801274548981764327048589604513266091710727267450352409814924812587792478124406084974537686475526346714841150799514874701681931558436176017884118132514556461538557731289112751602533456190505475965606015327395385632968930255494764479412347713501429338549644074976224512798815045525292998931692734803911994740567678623976964467107992995666633001693498250904591302481878192756819083380246935075056027816166172604530670477413854614396930929890995820226857430927339108687492430878377305217073394873306117712432882329613782567471558868306121895691454197407595384269241193907768765352165531836354725533983745560750843990834485667158212904122747376941709033164438631729075403662680363765450219984583522942372105835310284576224713243448338536124129769063523032854590717159675082475175220083095161119146024491855342379055466764671208674840264278560863410675892729285670398602915341298369541553791977084329594674353925188787729614978726640219778728705664898826513863487664701851657284255241894686575996877439658325007177273771488179218323953510604727229568037254365541778272079786615458612059343552051683606026695094881218643644532415411968495216527588277719720387041791964388377144764742854386069870903648022534209214619482536255814545287737136308945828965352277989018412819758529538514939762466928599053461647481144081228749740173409722519918035684995369168947364965589564950635267634962959914206240679269045348683024744464490925309265670712849325557292167974435825568617928327284447430564439972170120031649033895663785212033165498228554986700573100745538213621511565292668079843844520441718193568372002771930775453165248931519538813848108360888947694321580289948603611177867524752259383645846953690751911293684224539746327501249994236458297137920894505552018786868711667839033026597124729178629820372169936696067618186547252212410959194084259733976714712080869425679960249960441893370218698081575690020423536855269015827537521949380133151936608703853335312792184529769134042570148964236967220581537839298680460128350634696782951783334404613849069421525543958504999465715378077736028356062759896730217905444189318260901331331651707834938097374529980509353193319832909473026851951115479469701305687995476898102781165886026001673392291133949707558681576255443158297442143851773817855575746596596442914846654653197596551390179769061248044607297269544593411304825407177566056388014996115087803257157349106265439530521421528630622478305215443872428869219217951745386844734866322743714915521623550303613932420959117028026013940369001405258095898514167424035055875710991525478249117429666402034072368104327363603468285017961232126935266170100836917163325866818695839820737182610757896431730340236242022666001339155046557337103615651350567229898984149167467369162738281595519185053454793284695749322879963929616207341013201047653833011028926942223373485635463900512128590327591931895128997578292289385187325861872960963234811961642850868105042274266481622782715994324571620283820682092113858156499791242912008209138444283366178647332503523739254343890770999710296855034673848240536031985616640291660150896948466252877561695617011220860981999872869181039037498968739354551494671934176669921831489487150079720403279533222855307390534088231040038782968586920203025906234891775296614074335479230853118279816607515532604261981742543977413806586094024821172301279970599628351560860696160717640640402209521400951142033884682406821783128789565060632918746087511638937350506990646026055356470712023328262235599219958732408689913936709586150862265511728637946303034212886437849958655560252992952895093415633161481226251875054369481763223095963661563350209561858282790912926232116253810350790711383155116082134396246327681055511210454444752942376646644619917013794203743500956381306698971684651952451315168379705828943566703464520597157258588693011273386432525534763249191483586539778465444133327216398498197766293705988198277346889209934168488595648726046587782071193120347988440397738051449094280326601922429237441673021737637066812124403419903165414088467408436035339269826739199212864401065774698978627193206084876160913188948667135663345407459272735188433998759043341913847921153692824869508577243249029831558608095350669610606630661504308305277142105084418187545746433984398751015617745882205195207874415898926154763264325535551646309102342426721299288626899722602939663737222385973799315500756903890370944832441395226177261400142089927779771668206711100571916044022731708541111553112533786256952429907257661518583301413547013385070528939067211260220137717121861106628461292982315486240683653281756929797966687290713882890271913059989270638974647166730829982418372068139931573027874428125567277016955177439870011495819515115164235081070287104773327866323704741040993598250236535236016143529911132377288008633037180392313471054121370287288438427463220040997077662396372993863038098743843254620559766267551853755200535198604488811072628403832855482380274035083034080490598875903058472433339123846276587399847403879706345397874771982844258077969722169853494276518421360530110135372555624669146791997968938163671016019579767610061514532581735005661851517229127756731258996210714718583499292324627541560599309700510052862195586947467504875896650539930243700199411106171680061972249346086585953521639470698427379001699057329328167745657203341736709953024604233861611287374477282328729089791032037942196904498375675978193314039015668871810382455742551151546682830393147979966850197078989997628248773566892974765475234108461254095309463652926218458278671923738235954566358373557853285610899618388118712599682967133168977348336359467632853148021788171898260014404317743615650450913279724362796098061043283252948116667075008001480388964508559987421296983108103561196135522430954839955972743191040565500883251904274046399283118081684589074169010636467813914845636053484186918588634435332941105613510830538587035545025274799442089291041168315150092969890765470152980247673649008448125538458691988823499378695106526564685402993643396130910634510479600354410861425403719136873913979364321854876295504972253614365260661744090771731117537962244435090726008097949753799991661145296685518027771695300796386116005957980882864147595536831606391854175797240737370113485650618523227981036291817991277262275115943014523058826063489098480429592949201393406255728603803764065343259642422850473464180611152073902786954984544392505504838195853087165411723828765247233919310914124087242907382964518621134273752422404083643993400917261097294287063975306039266155538057135908648406349739084795779420493372651747020352096371785194773288362912465559891460190873482768263495361106887598027291065371649534986144440580035248409145798126657707981570219872619670755538736539824941056024755646482288539318278603278311159705341178825585259899887292738894024990447004349366435177695151069749262637032846359825420134227398028844084812814052674933212615819244897820025904590720807337257910893270847510968365704935122064941362496604985745050772489159715943918682108121741125741208859858386674996860585953513773722554994809089193352981537846773238035064663494099968316795511191090293302294501758400175320070976040070868322004061036707211005747630084604977644840389457868143417161113379588639114315146174223950274927914217242242974814455155206527296533019738414966455618707427032804178139735244281294027364796509021615063542372645736545526756705642434831040886680487140164128310874343269929128639040178529195205682861039659397647139023924209631132459459117884262508703042673177306584444858091241770148322155390552923771457325993478248205584069349180882310048544456310179569785161744624614971268256325131944603155711196005622736213271378547941936442338215031983926877465726525840301743426688133758781594829492861595866616174607139743863579876251577166123152396795128348725129524352661974834117611999930560293834457474303618823576041227654993088579318520999294364391659242934242416187928869600814089424832497753564631640021175713006475619858083510743611497828060048576878354069209797965894216554115578563494024249035250638183681861432592924562447360594664733224887173866235033933269536058925841704406912699358577934087861561358307569750170013217994810657568084417722186708796266425162464616722248881642302563302546499835061281591795774403783444146935879006593826253764838843160492113848574035643697937807618819492320650196995912202134766619816006206122124654656143820786771579760730645266257717517698671952939931180957069183595303816027945309162496190100574855924252857841219343185785719332550382369103274252396103385566128950700073478179627742392542301488527136524486860219926461637042256418972108106541388662731005756465002485339218381982665398874741468264215500410289252940476281244602517099042859860953695004517685818893048494241203454554586501176688730220905947694787188414525370477586217365806161931119118026912479108478570475862376805187001050696306844590669560710911955722017397063626612514782072784707478085671317226270256776904546734996839364510048737022987571054490435531191375524819810605251226881620736739087136170479104610525763019010501434354683110062775527823863344132380599848887026352283202968634525688567547663889379972612349966856480432386054285154115353708247431743266905538690398085471338709008075050927810157495565005081657038232363921223801331958591816153221442146505917746483611407886091718581984072902838950456715548620486967415298562828543419838025618837637028915071920175749610524242457993243255545969724040343754976738209260581133482335407769936635732642307023912090687972108040586446694323940578197089203410566196495635486859279197894227742061123487047653464130024758452470758739345050487725225645371609711353809302768298404350671831230648134735936519856275263616974288095423721739563940605534381602085411606783685157430083536477629498154635057590711011647754996835808018079312497670878662103365452832054334920627888043161037209594502014846562089693026425328014829761396840071033253369386653948138440528074701366344259798872475185299931045536045877962400745146831926851270831748243995197554715950284729350331992854728725221682034371053373595603485068008282637533083256968924310066388465260425623496170566825432083512685259579237271842946574774734538840726810519346827762366540672542782602821555457403251281533878855324566142342369248596545744604294053526707778233403438621008785651662107566104990780806351748587987078812111629502202857386529100159595404617956819282912382251437613729161051231926876064975623279834856407546737695871046976341577674019626467568534677083129232890034278076867190476407905579813913231660355370638764355225926789915984606595896466615114234291546709085880963613530503244634250491487666673548977567773905153428715518211142438827233231081623004225786100030992879512991916743390608001159647185189696262678844621483528698098518087928397799467991850084810558883690627014484053229080051267358046903672377345539458105977088002461887041969055718866676554441605133045569076522839884980101499478694109813879724810661472344166496050334474001134989185172646970485726334741789931205510914088714681425257447449220313143333897325731646779351498689487811371542256512465968818625257267824512945104466724015166162915122295164789499780888920687596503749940649998416285760231475746754439665855148793560382065823295141580781838035968994592781003657235892874421845406067573121350190221357393484176392688398895529778461064873980409325750923359437874984170658431485000122568960154856317487644863480251289533612834375115703564787827710227468978393447365920854732369664204112131873106212708157291621219748679549462815041568131214864980838432607781062560335540917778598020061088496887313403941049052898904778969212320596631422943209015927409947447149767780657530199599330615838303052153220210926936419005303616836966459253305513238625705892099714474880750633491495882842491658607965001288610315154538983492636821802022192500539980732899088108508428587736111942127293517319502909029987017167634059710121313089312560386427941121513687327793562475361545183484638396294011834089858500634137871997522082994394673270545791300380497231591175487938613798128427130342470564606878662592586032361889884989289246726876152815522056049471865111125320230116698106478163891420356353206162064362216824656019603385087225824725713791507074541703009818462777210136697013637471664895894199767761579718044972080429192227367774003222775870075580565459206010929769793643763265555914213575988219950437423074967042338085402679494740587098421786854572321822254975312955726361165138918699701369360972378538286210803817148002924272526830153024526565411931247002668643491459152650205919893211747723827872984165816504267663982526148927056327872021482581388056446008291221541393825052504490473423760133090845359745013756002524415255232936089610515633331931656357589259817688495764649978677097965502858982083961425572732067710486304320700668656144937640843397578251989857447111429050382625782558297667475293166722246940938283894453307756645187560347178863762401864143288832193271752883827130078242006389838009460639190999401916909878685586789094425854608183979488518431786509427887881059008300779074338026139840793837283904429206315508517538086677971238368284080181967247534935887103857236011525585942688387777580657485637738340449222582419266419499568985553591958540873449469064988227726529646242759079102145185053267063862245006359700947128624647264196320568856997162053753717745156287268828164352942041732013944124827251838534815660429778131820738032672877667457123981096844741719287869268292415644547457690648365496662371954001787098914588390051507831260606005739268978834082505404939225576300241156215943761436551671485158931914856864843958073387945286924808487307262145861542976077857606980060793671775920415978233971629907150015867294025106756852559124943290637607609856551853306236104144533773033117660188587334417665102950209529593695901715576664651936293209279940487339872220122626074499593662124396034455506853497107500228194852784404122360447576718955247837666303221992137103125250122341261584427003580255789669812219366403012938403195841171708868142115545367843569093323960211732329277718893213202152813655287411101641336175265940847169883996428898685490870315884064609534011030958861331198769215035509674255452252705002705249587351349042851329143122614728235638984631984687863477782664129489166029933366844947114101329328860731365815388120520196146300629902123845881734858137251062193145426819513757276266781927189908213780643268924305906080066644098293911192277248073701142181713483918280220732888461306294742811566910747989022973485803160986512260356361594866998562295366378639743909892206821192767922118055817814035248573753356968038453810253420321426574109711871052164904316579384377247997144863448294136896111117310817510022702252920029667413806250656252556570911259756391367276929913873156985279959871590320423887136237290181436500967560984225537150347452076798397037499932397477923449330013694393831776699279897755218331315964640270656998675753238090433553363131484314098355154217572291742416034909130098373020025640528774418003178487637689405628076788041287520890058881684074940621731324539325245107963560364910851637396078279462458234746076088976362072931107374273493819514360627577888656083151433422184093542125286313621679873775393327433601916784339373017394725144570596007913090164552966594076330570219713794795218543820168965342778550847104939748504083415124427350297661030699086432838362049646084387712407401212853396826240999135431286775054863110469872931231180657486995341104789408358592297396938465045142245153279403529732407565652172729983492060035967420090833996102291430275247192047957836181409030227194727530011789397234124230577278058071708841666934435693069070425163997992529348957807158905762115859677134678315453246764987526740398108260727522980537675159446766533042713652896945034622179445323506962401787434802180864612923899732230400067170590652848454442511229108729680779915054091221869468479066656857370786712628935248868131335885996739729942311385056079139351477081257653810116237557717006800907487169601358916781610671253083409700430686597397135366864115497920673427540063547415283203819913583079470332712728862973279580335543190743427539922121691504656247445950585772723306495974518050175031765208502079644450494726003100634594951125826300405515783387844740260499980136824697826058684567656904176127651660514198659228451542938116627635977916530572126470432696815261101168762853190972270196486211474733970800084786212463287348438988338322830653102673208589936385791496665175657326018169528480922297468238308858305755036542394050144353930310545359934333240382021825258095373908019246006281048735864414754764338698263134348159594334762065335773904310518121951275717645031372627423323354219033027465197325615183832918172604504897570776338291154567498681546799666474125339604413880190591722338865034832374122034154383025587606227649744125073803460624264911441013157788532208607550580624963712245380333726487511654979483917373041616478877593376349402166366989770750228358423811843797320989098910336745749350140557357170505466983942259943763861795374167258912482559538978511289156808891847561933312643612553293692042418448619235781632704452426035130419179240986520165094662888149217836420728808971864779448069051392818807536665103755793172204842565027728009003767437821742252708116432361539181565968638833199757941543961546205025004944104952951087576084634411395889963528579456021916992097939103530077605818959649881781239872701818737400495530455147736985300509175989961413901682003786267213898242816391218370479256430507384472667348149494101818733163171840267620824394569721836308623129298199608990159160539280963174183924267470345708683892949066717723057729861813455843885848749478523930566991491198224321004765680248041607997801791643634197015338269826554492948347491116078619738388962625426633028473852017843927517441498292246695902690590865411324832949982866676766143276398265067767037719676269624763062029405125321406853822534114879882211442480747259227140339318459993868913976501937788667735779662182059744350671614183131132590792869480746814174304644315695022635775546679420013312301250529549186627227280921744665259605761088636938264889760155503151251284266194714071166123422795221571014996512135156458429226942500738010304282419893405707888913419718693251901354078782548472076550682976028274382186760000398957881378634849580093148172001496724675821123237696586253244571308059593317529608641240101492568361208327667922527477390427241177395316776798769055389478990840060769793725397403624144718459249163300300742990308873958820487454066551346793421098998222334185357277408906595378252286001756420444433026069328123533564162987046834606701127649985715769844772439541619146233668025433324535258996724559970935998824503917057978366913113799816737338579780790715191186336747730076889533267619321911614740460575909644671725289024971400444439661571944401807827358166440226114506219491987562466130046147839735512108115914989100904235271124374588191409692252546868903849797236509181793027809477557517269690045548456807293923831832390788923944132376596243134100467560745233710516814742108781163799256813337909898672443316094614336554769699251338438021155254166337267660356363828493912368590396649798295779425921029693436185965117043340615911139780522867399481390794851056291901423591868007550470885728588485809097499624376644350684643158865429425729771469918378392141973334523946216564898064536600792524434289402142075069439380626774812975381333681283705385888107894143060653573500892020975180477000954730420070090278398849246599633246356301824220304490492887275358933707038463930836467213786231272491593662974817426355661680589611750493555064959018720082615147852257138836248295765936646713924283599752916534207226245731715723093077096594370572955521427383369238182310521205319571012962779325241039401126210208577104359508959101064029640762860760909505849186934300381364204344980891397403242041996141281124591059400379878577240942157887885093829270493799784598028619672146882886479466965689356309301951106279422013543047619236973026117603191731642591581715497090472998759123384654622418128004826136913834178976590161585498699405599095803534156120120348103111745958252555094313669346261165809445621113455027169566948547227819202899680903502486403328677963665603451512325314386527940157678799935212198121960653505385760644096555016856078158290077390264371492234212335590881814206371787170353172326401865010089963047210332717438471823183505724567827865348248893791180117158457079370225472095249731301963913708710744451667319152806016517535216065538217534962499062556996229751109415609318049522034615704483378343486467606771533110520990209329733594850368797314271302951473768994897839787448231806637674023991710247388477813625839776843007406966790339314033483454188564033399632776878191046055200713640339181755279766085512026470753911840131562790934523463800606643010668136934515083386463824286159084348159409751335776975318239064215662533066163491940909274360677226332137828102245429418424609008793402353758613368238601336594157060000361055303531774935655169396822926203327911992989393164217092099968937502029171915626529944707533398342464885803229731563959870543992934833775168498051907934826227841937643193586593486570565331294358213147993371154342357980237376665903512404567146449885360731516341248245149791284884263733220769253084364005132445797181572074438114064643003779857291934424608317307296214307107800036929121681298744828307789086397261153137528674878243698180710732421172702952395011240763376287044896398024965841198994685206551676078182508079831986189486120697332809705603526960262783533709620138859552706921396173826394431582175740682208873564283904643419750261217109287497004822680198597439571579972483204841857617226682326491000891923939210474618063292002607960188093485521181667814172720466278979866993341713796109371543474489199081380490138966489772896217224756300097047867287328944727075526613596750752437581382993702675880674575368492884018171471005462273416064091908952924193329759717617713981852647813642422330539939456745169563012975964796879313815038602286794446162306093855513414020442033594267987038929131423786174840770871247565610443118992799328062904645516115637713203890004004804576715164739628716925858005050615830309915667122393855877597054509052156429797671746013440166903215562200540397971588106424520181826262465185049467332079021784479967301661896800912778507992358122603612254592503744796835665440810031760646977387175632722971911043283167109737026583445447210212629754175940282038819362210273002338219173674416693616404506376392874124815551709579951292785844460477748648005765625476715523868847035777808406877022741994277867022435476334060633730266094181232836663397964006370611454370021018120059228545881709164656394752849101007054935465481377674821662535369869282784633198842113923897002001325905939254505032289110469670098778676354863510662492387996564173904652296066775065628105284632853984832282281603241256648025769256987106852471526133352594409731752365129244477922711707899216582877835436561688649745046026047333793068775603720072030034329909323217596101631104141025923029254141232024825873683421961255682741354460397593609861360044579181467845105296333279927187528227220310365259163412917455476010764579009281523001266991586710080743710608924232391887225621452692294702167953498669658477013719961407567605061600248417336350039980115912472176001695167565845180702188520118692400565026836304878311361068635429194576650185149523035665859558682068525510065653653302608948035350886174469744573153549796139012231949349975917115163767751111686663364207912013140470407038192600532752955903554614224125439033336926375158260007836959220875282998919919442532172002563716952055741222599039923785380901356243856735454872120449942702839904293147517912340700310564419937550984219588591572190233177171829226198855458878577223742834012618783710184324133812763272674245316963859413225820382401823592765688715587532646339164708172852201362518141940465733699872721550886292286729029327840020089879744182761058456596296048658305419897069987359968937473905166518919212399979569243074011619573688836296514346637460778503656257017765989420139855516146700460030064486988538387178448336097218086156889636558884212520779612210961468827970517482012203808746379880115380864859442098718281575414387042549889315548980210526763808549688194346623268345325104986303421723896372952826308546676446004210082426922965779684280787390231076609268718327166415899472064934306374358037672236694902748090032812840607921781692148019886886261539422130029284004802012686249080841577758078338603468000593342080721781494480507683623014598862991664044712981872816894665671327024467101653660247155756011829820219032802876632433778028152792356333522878459109158937440714793793936792262053744951259035174939653215730483008974608607992323292743605881741651097289099896681129926441820634183201789502237710612647095543943871769299771088539212578701049376002635725255999010675557662260864436788763940723385892469319493044495814680317454509542577851162149659885357741386851480955717314990344494873835559524178858345048736608935320108598490999102104972918191014654048562619777834772488460271608342914233736204138601686427572824176433050171276893640567085215924475620975861232192424180109227855532568254695524626567096434436828381148969036387950210897573639796881499309783819711894393920370351644593777508326669504481675757947154609581715489491122566564320431081165480682632307540612517366999611047808210681806747762219578531698650500563280792502752145126754029213833413306558560845528081558612648822206555139274858896898137363625451497750503185901544651161045790348814496688250199424808849000594448312077989111264483397049355295870917634229274498913929008932877946321969184106441105607008541742774073170906567972001940393363015117730040602044507008072309428861442407387963567479186401118676895619951041382810534653189062092928606907823434105612400276469517027447347882270326647026727882946224344379403578871180772675649164047617039570818767482779896501394312014116373943436097775437461113016439806531598334198275198943109777449809942097618246672319363017330906608179484183794526077595844983439186222936344699539412184677981956053001998331279362718312248233526210036213341214866005243198759027227617445526038027601693499594809065361617423397889965680328310083588675761243033424449276883667854872020245247977722863126328089755713954204551162708648432579333122153307505516224505993571760967568604498344587661511864032468085793184180519500350998465201196029996663856069531195090603758459667216401543261456501055130709115752958612030543031942811666237617440741733611250258461164221834472511697724769178285313615260286990814834303418903178575100339099822368171635645927651602189197908118714018882216812767221091796896008672289412440824210733555956206374241991037568297954693806140298816556328677289597562708385723937312054756670212602299043774495479976288516139544023070072134090899417466398350255349572451502534601966842571395028892880032934143947191544756576005688675329892565561384041185743558150883528669917133624604504736704791321996484153499208645574986362173740976172533849841714784667727522914513739011677194847616587001555470039301434635724888616606875885339026305059972354246079327157278708094247909651342421212897008690152510986497787781806577144708098283351847681191545358440444485266846753511157967263299673879350867295832827497996505745917239071880457853368514855112659945751277941443761355543711991881421805666319475790401757560800731218177973471560572251027207218662084919100828942754692999773708861354852509482798115280836851346147060541159056149971120271217933587485118765547354034176714447801729994608357932523271566445042115651529854747802797002612293633769867862539502820138052406749963573429211719635509485653993661828480791746250033666372592357944764403911100733826534315280985626502056628531916776916341293274168766758056866395437143306298009211294154552997317711311153657304580125877246624049408965995319056380026820643966116999977910372204860952371965795942904664428084859934109880764863041132555974817528831275797164582567455617961786846228395298378920651342182962160445224095131566855607400174628628392697334290544505407953841052454840685316208776899082900326783209184165621502449354694684386397927667282674678075505462999895940424497127170991784058806838835672797213719982542965419943812122950241265905211316861597503971721452179973659521747791201544387776801411555040281588679088020026607805520541383203648085106948773084471769871078376298558453327068910807477641014062239964042556579390192864923549007860276935916475833355332000542375345162397922059577394771409484593619729001808701367176704025807648309748561265407439062046263390287406366041594730642454026412459226066591232989240855072017228606991348686010984564513053681465327377740540669555435988806665715250956994355670795853474228999632667945234802944635665020177986400137430152171551507313131225677528403304982687070805638560502825538600674971635753187560321968732565571000587034080319208113516210060916783954722302786194574794040255304950290030206391063481888923814538526652327333014999208035675087738304994629515236725367816675010220300692468965613639678055488277832060896091603564236755787864184520654270381782385648922674819572428570642320011117668395177777806249763813581941866561983079792145623054059150707251962001065118255276561114613108693489313336712954943894456632463581334547236798644620415306754837543074529403971521541088259883807877085536626826497599363073409655063739257522919168449124087178540562508142716673106171879420540804572294761175064198140303350972074500564540593675909686063005794082920711869651625718810113641660278594864321497693503137201791077188039331841040557148974545917959150517418611187196632109942438833338583132021826445229257672887680490780120756051095559745809632455128603359569374068030535269505009090779314057169854038176340580378783383766559256930379298868128317125631337364671962104077041911723134127201066368451230372759630607512725116057763272885414482539069748166323688700888850177706603618512892321999218222790362886053697817931782817685513911155351963239126194669247460150209116401488656309375171774087567386833335542738532677303791418954622541875342773643624981099275023440176344133935160169950782503533168071149511960280202530616229744921431428270412425215295563246115733193581857594623675076743129846744626723010459713805774722321829658230304460824356832150201899353826679765406852383440808541631101310020102245095239839019278737153147489963450615899139646642587307766730750090661394848999997034177363803660828254528886392372104236116055985281844691901655600027249697296656576388256008431236019951591197370762889395332393012483638117970311978163822683207105350011816028129868893257420888356303188530349837244853532582771362154697136019663273786787953271107050132544749893116062867572196162494600569727128488687722410991661726151416012056508694118707734151670413781198938297900963861945813493808024721425638024344210238485185108850268732858947727195438853005825428379693037446768243879629242617085291983316682979369912072115520894469276462187429986204423695134694048850514133951511826889414601623360985777720269143111868847280508881959534926981522336812221304704666576972728794094826476977308316300394008374278314132935671398936277069834513697178824680615992939233013397563802699002135041685168836109685785273638295564756359355304551835055392491021526020935149710850102038773077998967699648422807662409559623060426942776745157221520285535234001410797009221673948123475332628506211649287105102997856106310854690036012826355114038402108205116941920117208035223900585074861591288532317023301394617782893146885018506257573036219185786540730178129824748123512382080117179504824681739559357452535720088025960438090095324980729790443702548781495141163051661941917396696430545760854335462775631610482827879245924921930456259591303781241968951034346628241542086640472033457815153364867438163168552284966698402881918978682748640080046305429368316142761275547297931751350182596708079991315085936739598269011134180337599990419401506087840450670637851785173775744711973984394340311999735581563454766663753905462144273672207551041768334280356481082365142184275642877002918874343903503097155404543429865245096576929033471003102329429697094605877582696086956781823280079670880980822644137210842134365067973211898771161136399499772316373369088893611226276422604367578833959478015021513749927972776513053001472339002405673171895873051706783121333099317530616389814276884079871173737745378352242723952218418781990073083223045077521683326489095464665890767248007435311288686278004310064748585795195804589948204016582163373571338894425793292114536997753506452930208631407133454856585609157409145041144965323498284492123942502899075258927726184827277559155795442707738010668625295030174837276756856502958145800352129293680229510661529084724693550257089787766670650473291046616355079178204274799721665869162137183040548915104497899471987160983817663985239353548208930164791638299004790383434007132821589763666201752416181713373147590147598234869145664609842219265609147820987206454299901571613225780557422299551075000422077181526450025264591365300029660139872956446551387104672747305173608685120502188447932547641542190372768030452273707944291968847894539870209727303663135831928000953592579968120559560753929313039102126582564969227711708289898340175635334867377844289663170742707623440485926023165495708331577438664276533019796519036575286383112229467779134420280744231642218264960936540477513374686677801565205986336107221131947735120654302550848902326198683770559007007384404739341145178794816129663518707157207666442168040297909328840792458228656518144658398712757065855823088008722684032114828420206764851554712051987416750912022728826487700751555107797351142597058759034271782617203271162321874522184996235703430551226303215197220855993617806799034244840735187722497240460190822669312721638772861947433822273958993887926691194525520108747707112573731434716919270247548492341031307132364377244495300682661436518766696147699703678853448614752188842627895323629467854547613938712285608453987471497219949605976440621752188481780250831609438339598166525067334562801312902759070342983876326712309107815691295406556152490074278267030628830938375644877245204248068322039854153335132166320558782653610507954635361371038032451813106229591901540155120289567655598669658306256228247772851188380196549405011632662666444218737972386995411753143153241852925981347720617111499385444754879968527348091562228128331271876309946671114503971764095762309069274035427802317236814281397748755850300250046713738936413158322179168244380371709905155199398168709513187421330820351157541082015381722434344746887458183783430719832063635187661448781735325973239864086581314025524332492425346476886347031185303050147510259478296168013390649557453165176564896684202024584026770651203575741808655632208437730535239516337257349797939282918121534647513675903887537266923976985684697532756633483134696403297365960684750573862170353792421086644666813749923498520974272260490550940742637268818631044014165478114034953686983838065912296390376559145569845115893484153015821793746673835655009225922657181674541815377264407662156729504664819297667640271674167935554088156589955337110994692164402014622515452336450929871163619240723188740286764836646298647798974318774810142410687681513817521754804515789563913220025538102314884970814924717468496630601940649426186173752955998088808779674449860109334756860812749277069604164060398585841193618358697876382561602502419870255316881891043095081091699159099561481116685032541977350429228755739181690208840787545681671846524694631380566989187644141834909530759505912490602514540084588127540899825977754125557207994196839207828735991492133493784519054373417784994767220562157637550881342011878814493882201983441776539764621265374326919245734112185538722731951754226237716361091116888165376412200195740611487972653071540761756369104683933171959917596006516442152743200086483969618280224268739318055500785176428303474960638567748980431103644989534940673949076000254136480481018869528814559594925007260607362543729311254036587298550229315847991504703187909762690069107201589751191941289142709071730036012086851865573958418314475442406989254549888497065765359621421663799399928418887332006151696096357995341753443562303679258082781678983664466795698375810047660158621926880647626962276599997862738769326230622813721269722878992293304944749432498357345658572948405478221208291412074425169214960157848268626721190453296289427177048394068948410557789789393327022647591957009006476809023880449896301823046786712548959047239841899961529541984216481797550579588590050714690223193425806874432348592023312116234791982903682729331092650206401606965888099125250276293041155287880773254653934778808196439300579896004250274785955453113210596402301280420067499282641866482616079874749089300068767222488949855349372436865657002300409533532801213523745515224523991952063623048692475461981628062968573488261442558145843032948017761152715143342533430748980556490493999295506840625770345302954428131098992280985150737589115718945703921870559235290130448861922938104859760573894714313791682316576331264752902248361559644865262257431161455912408998042081962115497108964495142863173793060753065774655594189393972928536732541331080755658223603272127181502102214214086955955652935451458197015911374629957425361106234332324945608050711319604034173261473783656189200854464453637010144996119932013659370733088558992813931903965752733030616183377433193537896252025354397092237478539498750483021351965698132175975712066262530596052103727382567905030331653042422515081418746799329827083097541943261041846873350482532784195417881937070194814955439699867168105737936550435539020552094940026783508660183989195859285367951296842304246440768254498702771733666305414393269068017030792456330846103196938804407754353750271023186848759025293795975418129391337335205078107815182795707203921161846756495570593266471709660757735274856794495903777265108084971105354658122356351900413421805463527968284857671677865302045674303410841162621228148815632423513441493388980588101492037929247660826661986486162700801520852289915041433505537460441733425126812497334123411800983073663778312326538835231752331445449005381912088442058586529410830815961970774592432356310927699701773125003428996551032644272664660100213616913963880080165937613103163631783550118892705391970358222901686543294263814716367570046600634361559121459717854770417991775015502418549473263573734123790356394247345898191731785309428890865712389170438197976499234192186926800722412719465466850219567351832347069911682896511416970926604960972687293699813879672673529136315863491125147804560961831604545211227452596633670543232957911146140027604747558949828741063142216287523557103926258811834118875067526587846934371429091708758921086278851913504776342713315567690601380214189079441604516401898203514718291508341533256156199467478918835846206015449386950698717213011006606633005143558651283090070048521649412114426199632520996247627891134105232350913063466624971521583264903752230554545777504160367929527222659769098653690141727373383839178037124738212197840485075813024588133471189522739341919027057935349616539522010097258779131646613867275857398022445408220070634221847973507498866429172959464079820126965139991290118359811129465674636268594271009765864359897661974407858221017113118451855086924414676751218917479886534169721976925463010259113083986689153104177205411734647243680569577177458589088956567594422073507127233355448422952377363544382148948782216270909190329791604336002528610291308521570808636517212993127664640293500338195660158989346375949158007588858395558904617966634861796082363550041084806965364207051598331062658343810881821059167875136053767743511734498837952073276716321136058729430046205498883887192023158030039930510089875300027680761114934616728349000993965410296938693048250176254792736026542483165879290685763551635966018690124495848695402573471711459174155819014745836309700923444907796682622364396118027199056297299305434277743689873879511122839418117008329342764780678835961117390583832097312860372975467128334700460241288783433092286392597407473664856609204680495587093125226746252078347546098266652427208961753076246742441464544317025776923991263229714458412623485526716030941449741378268826268663352379398509896390130395965741356040025786686535145591536087871542447216513499643550508339117356214804936324729680286640729670345338042721813561134769697321036312686003834921613630608190019328322103461822785200452907803864528557058920587609724861615445288429234936462370818849074969152712603979313533782593143055233904411514560684590535899948502459646779096067847808324444830575908284168540760107610116413144520062220906540137007732933294823244805852362723552982598403744449658801085155447930467204711641827133612422331881260230827316919576058625443288547716118505091370268213486799776289917166170435886185352550996497084898382985263166825033042077374100326830611487536533600401025316077482366468755661517222813756570850234004950245111306974463492997937480872891362002192307870556756597742997508163077481960848656570440010988855987650420590490972913745024144002322999468820270135109538601276468215505839580693271227323545960206986591191788221148124376480280044065123243954889535140799296955610813926666632223224525252501330485825973125380317035442580012640421104829256268207723772896516253116590556385213471440159145927587974409362057593398523424353755078036109722744816322831160387092265328131655423048199512644887548839498271938114771055604315011324181941963791472672817495543407878961726187569913287003558103709025886466803538634708579677159737080196454863777821104901373350346104897134394759752258651259321256026387447448621415366699117900334315714962167997848992274752307314111671861082927727694825386631749319858139458196662202618963485619535134441576277391290171958088621093294951759251444418255906384408796353963811689230126615549484607665783935003307748297409382520344955608476146567958669961672295587782954791874351760776479930293933593308192868486609591934920091763752572814082643758379418416841897064341544930877975616225326680577734451015631523488018710862764355026218043862089197894731278014617027344313539617823685450623618202440613930686620597301096855089060512444081712834715600661962254127358469916189583131257641964388602364876915738916028368682201040254828015690991908063839430079227308345374460505653093659651652481454726158220920513979457289217744810011005308895866081628895755565690761216968780420283440709217131789786011812750926716585462206851823031018219007956581061896363703724391684378940904413688080249204928270115897249830362288641206014237668789516094593206247321695209963821778159360089124567576757980994068125287187412521036479869105500116021560053100081135849542521798043490068225675060975208089802977759989709397933202927952860331482540045053119229601883566023734431890423912480549894580979199968304217452412436149218069048008221679519208636194477494398275079293502968772880158700626584255167831063379712913573556527447037303824052355210321778960723011158979106986527584112213629319240974102786192152242932330128520256189916610318075468327698216125877072376504997262089125561179549893042602772181406110833271940861369173512283508016175874775641250791206146357080966225599486197929956763533627380733981337456598189340310981417378093957014972686753504841600086272656150100187290797146372051727100801817023168450408261700625121222062526230801514242800808650408626446629257062187893780837284702855080210707867824015558154374738562353406391522096461201549633510581526995863483122833249725837660409732497420550018191722873664629935883028259410377926070143742163215238706541062637350557370576501830841420046913658643242355099987221689815135467205480045958525205472178712239912442156063775099313897619432046436647447331233336011603705963755400476715578281122480244280255763870298488469102908573761452830818738513943957868802021712832000833221879556391582814666275311194610031039125751689783584727874844969902235253690233335254536125762284105943977088343408002933651628263100974460714052089136211678650911509665721730944107900939858133416351901390397541545457402235540579336656031785192647429242159900308942301545985397380629274893818621440718112736947204864126887480984664424613714716473937746473088714891750149842715917786583582434933306372600975830640391227004085129144269688516774707482583798255030848630608885487118523158489156580271154459739445768397109393602370809629683368858167714551668367766957309725110269169693049414299248600617382663091432160371633374626767434546176783969555837409610602166963946854024485239896493176929717025131222986493653425423823059993511895139921019027034099945482137517713895595701555939821304150702295273888668120150248094270467693841018016011348409872757370027426286332860076674560694721871020959754366247844236139552884920303953740578847903756656950794076353908056874088700528868952255233846678469448692924615862257369041795289869873940268701936317139132538372989638886680987281346713535764691979623016416074826432394297948487264618374021120307166723501238496143684695196601351909464353450988786853148333860496278822442796854450057208881991554919550595730857318911082307442667226854249463100364316394908639055611097967909695639239971777598579177743395800584786403858476278008201238158757791805364270726870495021646450740604538096486266133638186794770494554538036243823127261869531992571427488364996562271571060298375072186234277117996262177389073657620463744260412461138146176228783343628355004959096396661907357014120450443897177664285104163033880887404620805362546207946337136642981463965832963124088209282567999779727870485994957856164597665277388509487313210809141532289908755914366050829485334086645968627524445871888102154504007880070644101789653090864196169158277494716927850834554862898103427095018221639939550337325815948945920273471119326384224342797377776326137881523192861517334601656110818090074707397109287909117090914800140227039174936580858838173869898950113661582345193779609861650176123303177418530871825620320006470566589667349612358739105178552176669376683239484752042750472441437920332179968398015254575993794280789730157119445238048127725368390264343794460006407686772472694970534219241616546339124581926403708444771575173583478062758864478885950231127654771225718969822273979138515595329188057335503175400433594661538139497581419260951386739136926687202245643774040154900994986747919785976505253294282450483394001479812212325264253446527212991473051521392122499430362237946190960737614163524400899997259503794260309196215206068686225569220090395506057768049533372577840503533915386124847226383578429269523293525244146653733167774616821728336051607682753626057639194290179521674066922311881105454986191613104466028398244202875286214102892876036401539881365491928790144117981294833859865639180443203834129318029788454329694807625946700549504174431758295312983145788402256611736288716473329664507971655418379563582280036332076342667422496497824749329875177842680865831769717458942045089956189006587107485064222959693888128412873881615161238512638763681758240730388503327647699694754607470443612585457217796560881539724367166366696168243138090637329579927503251210533066641957577018220907780795965023889230357783975088613705022223793598430960133454247849115746690922136709173668989044517293177599762036198153881741398184299662433207860419526539447932711101463182173733808536959855772652877675412813321849873493919100585270011430855527681452512859960013234094287117799558643218199625092208786791752749497657102989468459228421169604391441017544888017489658011755951329640540441205847308816313717823226289674341281969189437860615851749420548383353775490179906807034770224909525482325294259578385906567591833024835652011409604431331965150441365564991840830744492912990399222316220902683496073518887684285592109838900926574764961666116263486310787331562911159707208774475902450970730803419986162705474907467257066689847019812838147595676404338881966516439331139708108649462988739994987921196953073211497117002626700249576535026135813622883951754097315247414528653483161711514051775595191441352525216951664406659291161180748513478235358872091740207614434254725766222110514383289211188116659937763793816122637587729414892243120118895143516090777547497988720917308914664278065806416647950850057563503086303197103624115840980115768325467010322903029456790328206473728082432114338113656521699782127164382798251998543814955724427908993649272541759593675433547085358354078752450046723388686767250118619719439443949851501579028778031857896773404261327526967785443852244111705089574595645604636071220608870012420367594645006027603453773035778625972111924907636696491571915200532512107624558934367293369511816724318953089220305266790575196877469230449014332057971056919072609331134371665279884756893174996056968433587116224022237330292295298464124547477362791452001703480866055548188822440799300326800299070839908664613967623996644099377855462287357055809226904660503683336987360282230959673970136384737969114067862672456901459713077493559431035559755794154454952114962839564983806901371796683130805512711828038316005232371593012924991576007091287946637320342720444518027337588394293699203720269575199471339606946220596463627423530106879311077434367576796338143102679935974494511851993630983643643762501491133186676993741036403442132445403146195204995962308282695664166496044439342043874927766113372976572545739439923948407477188804858746050623483533948033492932929643226047016635372852669385685976488961052766246526345047904837827922851603383280399537725439289169785808789223493264419472219001696184199153582430515912782791032263721115545279834247784089278738278177372193272400873973722464605940106193069766190432484360737412378180795056308173403504781367043640192620874148922910969382751701911124983143004437116156650418546978885906121185086861061819878683326347970820959003148146355692537939905361759387460347464434433870160487518891677612203744846640804601255767486524718374860413754786483704874635407962308122550093099793013872133855162911175848642533219718422443149784771649741117668208609613199786995249156044301940940684681648903374704263467792725445277245199602139624420382087763393749516749508414193373356500537207808241648515832410924859381842796875557588143378926131637572048849137775218292956600243130877567765726163817906842860079406739674855007597587057313129588281158354753976520463889079498282918262530383656472633406905832044835186120800440628232680188306676119286397678759153544636230769399604934396796229697431792948951084475397649573863377100806952796231858390731189988102131806663565083054679121675004061781464432676837143985431123244576110677734787178252183112911990041387284348360235512158307223167337054963815828278090170380121837347692656184938129530943280680675744484993133933363590410308648050509318960901153470362582376245454642817383520808306397605959570266560694446983332206403483690435150648033794422249138790275183485321159736872623050920751326229668409557654222039953255011100922367185853393011718735061399768916911179560930881624438388312484031810225253409362112845449410983464847230838403522522677346779243721767942752908653180476225956423555336888905083835818788902965801613118112406394099516675976380092890195044836276622291063067227000875032028370143255878348879258425583194691314642690600873913957079527878557766624288135294673149384484050971710735923344156649430979916473802530460498620115559748077749300910783188534496597578255989300253103259949984320526630971080050786533786463474786366526894233510087987364733018972785634930040442293481360571629698391172864883840359212250263610616183254309812164858331038225589915636642056052688624114350750694893276743769016293095019154487274672608972689739605845639426271724973373968918184406422687673409313494608347257539077448370641727851226115630303713776424466607916315453177409841090123336551270005348213844911544208889060957330845217038388970906135674471695642470771104814841146295800823563474050639164216517392777957637444489717209886454665647577882269689858174069312211815651457880725512519679117148309122029834377506562716236546149701312465845643718905684592264934833162012947845652747475149921886884757577321718870462081695200732323143184484479224129413848747920678178829577857739210996655738027961556529867244990503141137973030337745166014131742675795045714602783538261158002189686516812188848242385658031843884957389219415026268404547638265537008592448154478477706491209779187965044824874421209610744768955953656953649149575596681292367044742731117045409857088806487895272809947941893232937746567752796367756184526320794708412663978257257210373128982016080966545246858857881202456012822099393823197743215110450789723147488351601193554983163549115895194284425225288024456382010909981389793999705148836133870773483404564212838575699197204693373868285547899960371553322641523716578834517510388199890154675069989985794792212062864881988202602351326598138341745325997702323392486803340127315074191367613300745338348984571456507778318788615457078303903913903981181067048068011955257787185788520530809208245253224748392275428590530091087660866056473983638236632143003250113692955241117414274315746519044777657294506536214453759446724726454410017335555460531676870242310581309634053113771420162651008743247279651194213265227975102388276864380782063583562848269325603443540735671229639369617327011680650009973621556824461946059048559993434414700407375468805658773260231391463655694707060272701406446151651926341636710867682167560942866987394294274459796492749830128706531872899911441868574819573146247236494018909668156735924252842608911746348093820073928465207787519269830835586756997831663446824821618426806710009039681255100564900191911098359995709299892261253212984454575411411630055106946091583968024142889801718267557394931778926662302994462642876160238458153159215975428245594638591919809382495556474298406329174028537776223940580194534234313742574772467284743978839814731921320457115325378877673694966635280678921504749885977716252943784347525336007979215943997062450665886587474484048220178758946210352237206562956377953991832234497840603717322036078156863185718111530298172192032040030651569222373343384503378842414208401699952890399909897306954267172181499576729985118312266660551828630602232550222510161625702100544533724730261194656317082746043639919395551196867860484467317611070026082889932831574968280987176678108208121622226527771130191516748664817250234666080493439989471184586641811729269871517457098414105840938467620601656108873435583869702684638836801335951830074035811496828095585418115796515066508019627008439457345569232951687838417065423049114787325266281318800636461148564745437144822723908685124538692573520140509399561392771247369104958398646884959339282295177897777422737859157892254317976131819537787396147792111419629074135426809709452178491066143310605490181078510098695264988155833733846652305797930350110878871140711140239541924790644693190300944883523707402217067199606076905240393489481270215979812846040709558218875744323788737009035220351039924078683105127922109597842341439572753047371357124785769190817244451777535208024709731463612010371692782322376650803020045072040742652785570715538913283610213242073748126518145565738649515447668086477221840836765556662804015741710402298507267792139868281889728863999511523842882873789016763196607700924362307733430555689980924449726834710450794546699534608777252229912636306935536603745387458909350583488784012144900301166155053794016463423570624950063723915112310583645023361820748976848585779021393494652425013261960272085881970459652868052575853563040871196338165138116473168340566793374080579602076877900919895192125822194797672473139113792139347528823529570866544500993285735081580118843725299978702704120969368882093828378395062003293842303593946754603895155393283463247977310979705922873237277265089869676601440693543536996258730133991400469950270344377927354825328641849778342600048184855256620771831545304342141140809246798907389401247443115077403057789493285517575745923871187929106605372893159032655073398793701644050409596644415338160454966144978520084768760601506229422503159578177484597130109939969137158574106841481069642720151727018936089107312749201203655936934323178028219676166456484640782744780261803743077995668029117100264620787824047573857313102787085509953857859205916599539031489113030858448426932924180900565804962040332088939595498512159703605894765834221332800768213803827853777254698877711111257046737178543126886735939127187864589805152943081801050822439304250171356649922055619365677990015925868530890365851877405330296927105286855222104134518804764293429325393702757944217639809827436583416424923597685904990709847166832931048948218028095348435294857147694065029494948705452446117192318293391935110587738798172737717646214367254454170690193491579125105782270622760744748675073912280964494134787759841914909715001163718861997088453199645283933253767101990582905814504588002828477778922304447353788876011015586754275428250500749316704520615893351110752702445048367940574881086447131342921570848846483674086271326795609730313886298518979006020958490356454859925736277259292961179087214048839893074485376013054533500742760417578603779268488168991634083880013712525260282483721026632031273961776038855077077847284140999714368769044142271267868882340667622884670152088453056997024685377448131388766357017488978438060730954331061801601381123234679532973750790622977296168986211551570184383344652390288997386651250386585861213362967604653846846757666461281176799590549526747297061151280830710088109373909354140262797272322603439551009848408746577605507954815497202366082016821638773998053324631583707364639314573445508381382567431106488575971603318407302189643770594878936238393326916921925791718893272759411255732027813934166474632397513300409021647534264241746365509455552157708837570919957061995862474964401194590558661969691643397391593144980793435574788475983752605741511325039419940531927236957697786795816286993874156225196302183956634140718374815504979352613950954991486881075339166629401327795109871992249287423246643373516146961085308406619280784540128253430890576057631671720899427541888374845485966505789083528777006528464524479722959658601775156780838550025781990488317574265390075100124504516834780639309097605320102568238641130443562903752210220003579886528743889972422163318971429336300433758824095246178468070974243670310200875139245562576390536594757272707584383879257097597083661344805377830569240700095391150275040195392469860644747138547217043469760038682301564908399585241734610567209474547809002933406235081106722804212526518493664421098374313721130447813362427830489872536325581668975675863407993613034162776948453730633580052841933179565823453651086852915163853120460351402339684040292567150880817576990984096961239885558633451229975432596289622315794917200414236309645057929272406645538140242356178705209370569721120274927950977880343593812283329045737348097276195734688654175545054249856671628591332740465578092991993744901804229691392396010461457804688916093135832193340772257602824875875403885732737800872852904049714613950001092869062140461096042099090303534134821759079428824092802902044131028494243997148119795948160557012913199629134901159929485889685955333980644197389190431722497246938541909941268612058084068829520630195634986271234975853668300963671510771865362315498496443999353074769921595329902139054885105472271221710591214726543456154500268559568827845126155661201692909961089097483730048053464724880349799273471523821987809733498524237895544522436922598905632179131445938230252878266030253505353597338827082219710869203903281317548338239334548543212294903494993167952943573858881861799143404086785249541139127775230658448060277861180540446476580789649887881170892564734207984046220689737949372307645449533814551181468395123113264861142782958404721764113610011048035473203749446890330719341366376206364547378205505766986973247574030872006651609177168643231390875526003983698372926252147775108803167070450203954044819480687976154240593085700448430452797371382668585677922195010047918444441494228346465531086140519611215885627698993271651947907542909030788206627945831890642071421784742024355080163031168196781083244607128344805009385426892360271530813167055341461516312876528218100390484161012996146587863828537228986824804892497791293086652541863319364089843233816702208947498886303951011667073535963573771146280175284955866343102877149050831738805474701259282923459134540965354811800409179224666789617144737761340907040216067681997249663351525666575511190091713496927697587713725748173386599220012657377974004235039984396029841013263073052428605801745980250744774172716756604087797845559636912762344402657682765123332877344604691260922314865531245765798603519450469115139463527488424598371871317308657334476458882443971823176422196654364995339475444357358999239364657740827401524996204173854738376673299137759100657431948206224236817470553292469459267481504217643137178271031058906745828577089560802522968185568895336343068774118323676503642622284720660659458224411863065141875205832263179459230342001017047051360073709617177619968215351307580636540475366906280905110986674538122114358822306928267834195457900338182812945446476584995891906550756018774895700964441250455955664187246876879996199664159207754540984960588799960257885333774662370690771827443587695930592686673296758999025731857359198302657528367895141098135690218853246936539236147503295156922720121104951200819213702001818471957325169577646651566645567551695239231347679579390051748073865331070576941968833268060362682233626571877271270384522289875183307511925832768097681717877984947036238421054458024508048797589102380024703179502658187515443214078173473696676790499762818983809397669291487013654503848710281246426708744857349988590625995966018603089453113776444427401437324411159164185855210772825647049155458480922237391337352389032302965304483866351138863861047048108168780296716765711519154269646679593891684070156635319921675077757417913201889118761415273600562009796570850543261242538727940938773630066477887583563367638634821951916772536330993247200760394964986403207748879959061537723698303432251882875974021086143121937602989500623486176735904481297654872897377018539513778537387952729031591115513741010335442957401801885988351464279039724020642715199111463828694166214343448931314462173526227221129712885782740730654119374370872241602660578327108130118640259838332942662051318097964764570362300439171978735634590180263014564513338601135704917948371317884489834775980562481590760851129682509454421443525532139295003185367886950452151644381015542812715673398485814604981214161566583559090049946504486739289490289070215324009080428593949064852665656386958997663763495420298854161304007238573169637983327550928760255806176652952400176820944972337920541407047764657921383404980167063088589505850128714069715683349772650402331042615988596456129933395033328272809277041061038772212789266971458286597402537144446375199926999111096354843721260050187237021781544954782754345217759371356564282110232066876256695017473064184536729072433738760297870108497468176005084212670171298162107458753044108134267435058688915060142400386422761853084179024506501528704840998180174453768914619512167548866000168932912297380451394672133660822049982455881406168699383575290822516671560054841383533291422004231228942530329416893241209151507310975726174683654848837292968573527298171796978874932365561315024141339040504866550568559687203589161030918823077369156916123398989566859080465123707335640476026242421825737274147991557125441929304889827460685547565088540151079030297703888815730360084636987387412098031798296216636091473140449345686275338942346285588684757257024028412971653682053763237950735609288297591246850555739762930044273094847806344727122229318074743613761964356129374775411429289431585031330264125016080888812283308362512344895199138916914104585061698680024588345477496637840251689095205287541544436272035880336815704825192821382708293991482268695061267102656278642213053636942774276040767096431460511849897446842255413045481138737964859156211319456323699637844454281131841940533537346565175173506787874772940343410664434598526126298037191740787622895032730809990686481107214294939205637343752676116114454110761014712037014138029488783894423266602573139022111576983163783534945992544483034419540739905984791451296216756845507077020903744320483707659013070587575699318913594175243822202619916419838598553877952230675396854689794309734541213948962119807690859803330977425726791351836108738816366024837595063379720282922410534630040197591235431166682301653511142732152745612890448550545577453783986154155232741316279779519216270985584216435662273713394285961842886480189415908959313740138899945529582653186899886847933464067880092410978967274592882672754315850318962307918969235596229205663310587906164330933017658425705095312375599809642281585558292087649173041936344737277450126596051934814067093807008158934492119510081478854076525497944826310932728821989014038729576402010451820705778817209960608151996080829055795158759954396811147627058353562741175905144919623432619975153788519051818444873532670491902767425538584340634813251253777079836257306997784629876673345639635335691617405673356902874190805408007658573601810505497090397370272426046408704550336773464317079937675731588409733041094292359266618351604269996797782163821388624302492300667655699935577698288338337219678703416464533368309356263460745233750822585721756754619996593606445351875591773842363535720436475933621467438146570353298969726327657262016478403798125563608445471515747895704659503539498268819942989023815918567941367592217059284112294675212017628631554789604531691790655622007306759059614477278989173233965320628588360105068096892632583065416484583905668456584080190635196996137635538639070905003162950125995296564546886616963878565423965285339010401305621743459154097149293405844849259075726208278947787398910059296041818368573532718837019847916050706266689689805630580371128992863936769551744674158538033374362256932759060529911144873701818217839659430872765494296091132241569334056788996637023439361587597664253947180244059924328815341664335178623792601994083046681702396128233297030664247944539371633610518112996942895663142288968618982575413492946371313701283018824719921873150575121474066540593025068874475102762675126321810722289599163045663916992253557687840748007705015519448105132538903070623234097054827831840279552935454830588118875882178331856455181389102406758531690507292415359836139372718604980470992627492714383580161898248319102040061652269724715596278867062755863211140080328297095590352554353655337396956194161683002226545560447082420285984898876001198271640342447448023582097567003949839346619589343481136024298086618785860298034579077205627023608176985499240635253161311066282590583152633774848904790038366009743720168020483151543929176469532578258289729425392526025231409521373203811082224630510954036042443890395688303655621613656427077909515394388046593235007603727606795316521402840783611783268034519813915756204695067658200991468415243654340814447188421393314384768872813766420589042594577230923738061715958799432591426968621291443419229858965627761726230773625128732961699120063543868793324932118826902102195454780893399567735859997319292790704977878533701156329695537067644834422853485758347706668684856077121975973416577070221328365623946000250189317414276082905410138182188199382984996966325219188637960419088335303286153972666538182875651263535170971601161709707307527125559652227378385868668361534364559449454416875817373332156346649811738538674110763618788433687432186047202921376028118896306161050178858523318879164345109014590732981731032507119876326370851813653789821256057130111466872070458055803508185549382717162343743536925534942294131841976022065810411963882482301962116002175931490773599749323947581692328712523528169147303309252278306346536476206854756221524872017523406330397024970122390515419718547918427295662746872206686157782161878718127610429374342787036065951133414008329861957191324230371595546220398796018712403172328728234603353131028053168987711011462330876270897947447390824563480849937732232308657179103640922541798566101820254248812653773917005862673767903755813986787527464760039234918745326178135128531277791785625295000722966351277043712751785467793210225418841053252357898353457513268647513553371882403555623482550764418439710164365295932650576452614424686788754493953863692836124162507074217775963401808653925679147429308755092542032892773604840030556825991232466680513424620544176753478499414201776681234776783577710660973278309377476273309219506343809292859684748483091289086554349791803377758774408236437165063318873307962503007367747171635041197269760032746874261309871416932168285461677610628712918596741947439839220085921218831509110681472180051319059896906627626181612354961491271689474944180717068897205092082784875934675934065174234339577525908036738246772834240907224814526756814735022759834180931344212020059934701555441569717248736442630260065596756904728455431896352350455038645050939924767491326608445729468568550782306838719695360471552835919645736265990367433304233147741499710201680454367049168871819650358246678797712763543130164530306337311724949431851678976586643391893360194499462641538062744638016066312401389882571380428584169250969403166380545970816663673895633880222184541802840032071474224738444997590618766412686517949508704285504906354821193724234846384219526640613655766506684736310672125450410434111206490365168547755184082387112331325988287314599811882800000685988148379052184848353542742302479108469587886051266180370953041882871031030190077155252509337855427509404208677642393764845957534349683506972954281842136300008880810703482935336167757293768951477670463216085758839485344740734791769344730884183082428793237567547421210282441630347277654211370303424948398917086516100058825638812626187879951271818023562105104887203353267716371386323888978387922975009499011321839081514184499076890542558997333294678752512363460513380236186879667507339123285716995941519600157890215078950748942790679259109466331195050911462434904691789916533050098939648521903208739435684051752425263935093888645364592643629616038577112574735424988697306384630458533991126164008742008298462178823225359079304601870768001241919533276789396415185805353002645022603217606469689513680250177047637212846118188698286137739140516648087159065245263452289540638714820573822967096378212178643658938568459696505669033036211078664527935417323114156810567924466199724202358004307686722823701216800138876470706583477909949431071963742267865920339178616432352723352019237864075155476690272749815890138297612781352912287881654912770752409218809662392386049716524980092367624426029849966374908603349763567500751960646758556438058754578455737416944361360635148982965214307431422626424673421216616306849524335707008609092489439429614103662751212631418696224404225014189114192699641562523059862258260875428499446603753851974402495800949128936889032897015431847501683601436204992729190693299217973901553678211017546694392914333180988926923678271512725843029463539430957427580300539511107652990608294564438159715751802534573594628047286565401817741415260238813186885624418497852173830339072064468593283562246831003617310335528261024362999991789387670528846193370006011309286212489503663046822693595431073991696811963695706780216616894818235438506088792154314776721231994043348702344662981057852959884849431048783037695471345350976656788608750094974832761179376734635403789858688914931243367829870481663120254807598628158983929742473754703834034731931621565861383292008130438227889173369815183046198358653169653708579748010538727321026494378252082301104020900745050657534355386910399388846277301309637518227755774440302453264878566418994795902340808581271004801975532753905079032967623053678901439680197861935237000187212957014953381052259137629359214772731358140980182342038214013956299971246985807397327467026807032119202106617290415744078814003509446462536631816178586038143539805967510441166055173845837079081544554731593315867457554965114013945113162676946895730345789392479153331365476449642496789926470905865385899055177844411400889117535776517523538615615895651809524555248317495228181153228044242994260224628688531488492812808567051434476973819517325536817869301783453042024276208317700252855219665711138736162504205167715803615020935583503391265764799620818755213461211358906445351576239916905229484688242838008324693195074422553808699550563160401650442092289743375551593020983889874749974779896209114174373196791262425636392091103751530042404348379075985790191444220558348152856149406144666558918091118260541037466044286162193482158843894372984982037167414874633736056989454593449138752850586598912369444634361960127681576846640539309178636943946672713079541591419689396552754440140114309143119958935186661231140487283479079599943991036754115465961424817487935203541689574712840097450062589450814024797855726258976986816543469300396243204096197840706338269773037123157849861749070464622910973691160652703681347181083087246423879836104150540489917062995281697958446621943685846082396992463400736042456792365574868038560675830104325873315829418106689896077504854696082377288513434203632716624579873337494236507095874880602757302660281421998345353713664253540467624162422092537237217019885392072747223223911605150049328252398155633950337032134910516334159604110491959001089498230634305022605108526690696671182341306527448124678273825417099517999617962615763795043881694858931435342911793389156508023166904059708460843699119473722880238383859368981034700193117100014116757585331141727217464969245027436726055566371015177240382348703378343114739644627566280235847456081457925751987184896476709933338121503351064193251662795818599246285524400527469929385825731941237269248365750619748770846816186040805057495981536881328733325767844206706427091112998079490290563775843846143218706148805783419424333046695688417357094323995446598912972771674608228459822621654855975450994636127708960034210889942559495862627007915759477956455219622962023812590956352156848264557535568653261339540789215523765453938977333247976444861740293589903386844179228730471895097030100718653146543969275285449019115241777253311118972848167187971397643135304533676165543672051705654919473746653405879636970698865829476688224730196099924599771818563304899522740271861434892962979584517164425822041746169264934370928777288269323020585568112921736302904796388267616425180781299427757421797427067361296076476454857976647118587421063831704990145029580633638265505004847006112362878321692080734728603096102427619148955831833088590005409868940398196568325960477684975929234703906585253102776318989334463226552329910823367961716642901287749072647163982375266869313104095118878573251048020107064363835471484148592673968474738328923484242961938386492660745071341932648711012261672363759229347565777037360790978516461034426351608645977569180136888681014811202003886174713368862928729147758614035600038121986317656577253962201948153201219784459861039345538648805791500090492418679136626820381893407102674177149875032275990183634977482830051304671553192571784782021814128311695630722179675944699309448863624982822392066566129665862440277821186632780719851388663028853587938454602566427971808784871824679357496836444789152583042865891467222163041755377792253511404907730106187656140145708645795965468435732427460828117974441865003906080321536565804015194877501901445287458291268894981987438073256729284871424364949164733295712439837276748224102113775211330438495316602962719446039673669911107402333740765053034789412635707741868815242463551391407315212940354305312964006214377691460713621145396597589295166060022882333914490808596316178545544644734351943465535259469145447651784650366570380675453328905467187780896036888571138200002412749552805546175088482211256546845659567938072190763871893088403133733411917362033403784617870139738700237411450462672807294234006508399629432864359084514505123851606168022211758278289241837827667854486917380736435577078736970496419254168906190771158532640190313037942757821892662596943520343591194268214810852344535634476882432815029632745162399344483869439006811338385617705363100588001797613026985170820266206603478341610151512165401350085882149474705528928592462481797243636450745286232053376251515542801441417984759669735451886949611375105757711840629082102181735590903450275493335056159507558377536870162259983370650890112065383719903602760587915488133961549607945409147507361125030042842954620735979415016488379517869297843643245138204789936850848774968768300594807964140602811668999163380832284069540526135160186421145361064539612912833320302848748168427438917641942750747832714456962912653074798251036086643981368619956123151360292727062363570745390166275527698799384226662122165994137644501885888525228073190685368654993313790656211842690899528005617420951368160110276033111637079992956478602430446436314687894235063700909632999817255461890647682993156182534287922753155897237661947362141255332340504085199207906934294441721856902575836992182485404697266667207171141977501635504568936880644027061881539751129977005416633100730637082766926674237572408537551383091597624469904964040360342440762504895995678912802573407730205383365669536359937778822264297658652832588086173406736576258459893826020985578879392592515368240365821307553738132431031071901433963254019844317891674783423108787852767133728852618129908929538519654364231381426403185555645718627662039066934317356079565645178957937595895054819711945278134652150878906810367290407392427852120037368594320577040730551804913692994271081243198509462501168540946818829110523043049116485832048039201853254501102136245432855734393030360293517208099047618088651117572766378443475868901398021368124466566251986191813389076557250242121946461692966169019657564898734985278384188301339674472588681317706087926925205749969205262498715983281339979763004611686433899031769644485105302542018789011377597662078647317948515126713220207799905477007465923933625841938879234742698347270867004732195977244674602343388080609706807592204373136878927510003678920779657500359822916359023787588067319580454394784489316600278140831966945836166399746484871634824867533601489384319987958343205857300089132394782394211497515241266430382596323608873678612043820134060213166947215024840818732690017610891121368492885607023362559339875036683244970820365729693182466148794445645080249815928350821443112732222750652704177537915512190690410933877070558447632495317133637513432767359531737779552083347191901800604746461231712953132260694621479839153836611527249566303829066400650681032494637105048854809184332135611710243814373548912593698014938926801152160459536828527109200844040457958717122782364201080904702527540316696590268712017180620810342679855018244024439907195520308374504977665958052810174398508188001764226965701527889305850807413134066528069433090322604808675375281650348498961553309425982761137182665219734414311759491492942692468065214800326493995827997888564425221477933591333994971031932042355877295046552810733033928337837845423474401028094664916687287504336700403848865725096905427539131781066007977595607879052289981703016933282474497077688583256072789072444400186816323050103092075020874959435473135834518294501908251158381379874013121106844074016473475144043349364583004358626059403499604307134278879154903075946276866254659951257126865893232695856057299576681987967751122744975036157930812037334187287264842784639119965245194136246164061684427400714896600481818869467689735729488381311026726842853460430024974943411632089586767839255749255399498767086317096268659690869412489154895342023396500754120471007215310545863372248829053706909947483711298112987860758564928910852526711917584298355698827847634813362277484529310250931370653502792235951388018719212111334360161998705129564915162536864497766594834821330565411410191881888889594181533359160842323220955496443822165614514366392039994088905084381562414051997012445764716386711540775970539394992853591786095501817994303809442090647071567930361304378494035368174917547077189229828266903258446681406128433406270152380135121401655628066349072255991360917097575618104854310859362360246519188618965716850252240057683211843815627991393282361842173712962586424124535827237816899973654691296354612783466853430006713819467939015008204922476336589326854676144843956075986896107487339574551951010508583651609194862323690703490936357082223406295745689480271894811766936479508444899172220744014160814932366943130656869959408053908997319324624957799090664300441379767175515174140889881348199380111319612189308577997178131452464660567375048519089261408070935759567290074069079709764862500227086327809463821829104831786095995114007555400662754576715864079938690767569557929097122605988155990263578704709515679986479236024737046080079975130631094327918031223587285723317437761776757242158722277322620981186469315702314835903517253880607849837182004686680058670861888263018874364600425760970099683560701214209608094689323837183839753134300411382479767757488101149502957732446942667096988363575543600089332438852813042785510507681182890638852358648303012923100270582051381105487423716362265437422250949198437485392316101660751113523231922032508666337557146783023433239929312484544938068422875061382303753035787326661417080920921113495975034332346625742645145444286942729643303480227387583005170573900011009852095974011951891747047628207639084550872273179618945323052791534118532911015820476915801529753109381910749066694595321821081009401614762567537706064595726512645417515376960521031409090418381140499297734812814380649326896724433827455452875688200671136072578789422547518702618286840156861379757913124025959194848449410658516703688213414802521002641364211530854217302731478073126503494366787582735803557156492759797223120645441442882465966486916027145067290163225233673472307556682653203652769311118366508416986822651289193802644608246652062930968030012240190848664019005676288666225391119406050931585231846289794836029920398485029256882223480931668518110934121716282231553173257858794628284886216053228472424007958541412244056677577540611332224876528680694525316912229886408522774347591976568029074456820443888547098459469118757202567161874881473362597880748626381649778690027153517747723538893753555225686305842135356840511849437333769106909466001259173468653294966130701571787685752979932513793125079398905064110894910195916397846746665923635051186476049055296930011654118394504698471145783024172977768676619969356523660476377141374892910735836208625349080018245034429455402822488441873207376835454419461056717480671792748710068918486826104190185231910151070565597984836824285353036431659053924139066413116102635813375672866098289706778774270340710605209143004669640313231243009534739428466761947557146050019805791870244753235392358069466475210091889583884986321270047795078745412365176509870328999893004543367331887389902359586916799663429987809085785780856840448599540050710060777454625559560555461539955439633164772875122448219138622465430086490439455185661001406634704086963764511349820728584564575241452525968901432510846843048475179479034508990976016337475379796696482342552431421796024649648830460425081139661274498660182952856811420691037108985124558613199888789533385733496895668420380767406892279424945454496026853831003314226347453141629504264458772793560341752613340189959959118747124113662700655283694023282820716048729624159601573209848022516425673311434906606100087180515190682429297707957367076465282392700059344768646841552860993111110099139125415268223274567732316246207227011284938538175001437828837331753346616324587404591657617616122336118368471400433443318227954408248002193023352492694054689835693545338818341649753957673479499118652213526703628005094424052138091865226742475709263020244977204727789305801564013656400136683029089364920510208021843648519893715924030996152512069229660717117624012872759055179337462085213511410896656322068945019551193752222808490304603105501943717911552397991145018575456840590908079716949966003248332751780034121346517527572479809764267243620583874284002565670767654484452331454674621605908200648817786539921593955852669444214445424129845221291540662154729224417553520229830137006293033370963368761968994833636885494622624802905346031501730846473745778864934800722002955199116296965796644757504350787369010288818069153193362529954174174758294046086806121937047782961159341875600560047467259105052046369755775166259114907280392278033139896447008690279708056849756316869840086601639455730041102073606213915768442867232726888545861660834150986054745171179523366717975423388739723059727337141914016032937830753116876616560827250838960848076914095110576998054076921020680669728126127280037998652874958723371401669805054361514669528083822844630828069360854864432178403832310379495844250742517320873220548934922057994597559340738729753401091405196429346737836755889604674633562446993122776325170587133633018176433765748982475162623190949838866991326901322325144900645558303129769379614751424138708216193933625775828659508281837346091790431892047897905919604445758480301037669159119422488748489519739529227665212886634100303943246034179094844465523137106103797572665572811167611649119987288193577705188566925023598531807667878083891700320209288049919593792321233227061535778328739555985364030297819313402980885314718126659636902538707050681789521078111738024544009654450565124614072664570631759658214966838074979727238103432452197502351923629078763752593603248999639159567763791050949012744976096074405430761497611661182343971164606868235412386436464949149430624329780833022266053207257098269134346231224545004688435456181948724468481455530618387278630668284295268330439513246760519359917538202027124409819902704243150097338459024701897929559414790953870382772596990731149381984070572121792506384037265909590137266881517538192801395518762627390185118742166597782650140832359713635204300740900293047222966329280505511421265120837650228021634188887803313349007656506961564323706288162589554923655185566420920069205435085559655101370339323955386019299330370349374846655476345357422995231136136660897973723146104750052450184684357841445302711691690804895019606855426695831330515462168460415566588147963638152983349997736202755347393155145016403395442347247811053795941511596565047447242327469695465345835171934529005874642427184676439135220078112155130293213544645603395045863161010112845847950824956144980558159357015627065484992404669111733622279201185345869398477679543748073681181375014319176579770321134411078160611404402153348045600006075216661030429222902209305619626635456062219303791130466080936288830691367137173541305392014839135471599465817537269432183797158839980984594129581133179682888326451722496521412614617626030036310867769763453189417195333301412513822798413279118158779175965818953040432383655591381509148039715435474070899286930354470690235682890347395618064406924330854984736847902726849058977202024807369183129918528518664210630073523340311124723541812755469554601630744600287226746296639842455983897054526778925854406134800921934747982373868596799735081055366260095584644226022795657254912118900673251736079935945914426589917791700831197897957258061890052499903420129964923981207932357885229477114937492083719996601431713297431244376621763530690177032607476632531312520158252902955804875230825916654087035156520759170482914297678501118465316462373110081566237640610492900419460763134448403532617802468022371921079596531198781988403975428453135659675784851296345859470357165050977824800611998003674479071014418906902559228128638634938464148643344301987328610866735079001143566095516302052021637826230025160397944414947902776068402585196661211826659777499741925996553610221586224701972953899929054976124326553900281053872456455848884728754768118562052119405739666759405745869046652573994981518023787705156501022212253652503319991930044941535229134064268610880010852509603057908989909200431781098406684893267186253513231580296886518204404637362574946889767661548351941645209730404316457036252354060389405283294385194718259135735089629054472619008947069033977049879542692292631998476799907774586781825099152318238779795933076357867578019107559835338062098775957135813387382013649748593236471914505496314791314758120057371780211031652331976693108922313638503054464103202336700116760755966126540316676603265282442743273284157090431533296169187334184149160558689415233526922932755904074439584103107920465291632301221329146854169463702568914451639594426293004304839702071944525817895792221629509489067190801318377370814169274676119781298025708074006735634248956812325202359961124952305990573561395926286377368694162337729364634729857804042207412823954999920473327108873589038764573960347669132681612834307539164231466464541376094430126300449507891201763748382625810899058743568653421710673713231222199755928982844831074734291468975643661045360096266737465748006938542169709152558225604634713199622257881338331701760747095042283594628249947287526578405304536059815176709323766590015288514568534401113849298256669556999255756438321157016581084012385622943185005925160064071201353683807179891712021248708367765639248642765152105740746054252107499571286025154872950310663133744835113656818006050227028719853985478218797962375373800912154624917110955652944256598727226829672425604141250568256728063062377443169834681093831516206619192178982450284507608388724324368493847614872880335017998094780598476747406926967590726132310357574415688278309966716761273796932146422896851488135203036589538876486724584631227911939564625708827504760359358365631304932426979867949201702612823617439629521100208226132900579074713445650325341542916868870781887481001461066753265381410709043193136537606309814569242602244750422895246342173210786184505068805204183520163289277060345946368387185600825301322195367155527216236840019483265929077448056378927271318657541620013556261041898511684789485871203551394318783176083411518874979655655204525072418881887820360562387086685840703455623412589309160027709489144313323440578662660381881426520639939130736233524777385496544324647604625029435452194732090588483296995891312840498977245015288653171214626210341809134582714528555495472094674591290773356960044957498730716785887017341451760735815134234872243585992393444064177499057849984003611373176882877459922500195715275073812867411882871555216099951119218674082853601728566938179566640649809460511445416360534627751893880502552555087243231340944729776323095890438353293018338103647468562146297720362142472383894572001168473978346361408365784309727639255764916836248735710646404219337850718081158783239006827633351654087477472768401774328804188148920134010091752666794246561856593530170451100791998599676110422035753708811923029864001276448846882732598069042098567404285774000863690986807735539047107453417178998752872754640328810450305883708480945226363955682910944874800053511517532918361122780357450147485887876615575552021695920734204036593709052509300110639180666433621558733408479112930849335887499994688968166215816146329636118800971313260608448942135458569706955361112909177538229409721104193860970198717376684932704487405110430828799549531833219526009068185883819309819373581236229217709448140055557733501286050089025828801766049064806700409387192805542503990319867474760856023070590948478791218688206947583805922741971777688094143680750262525719554442364895438617023168032625034890991222763455472735961580377161987229733570416930765602290761088408647802020506026275680353281619814604262698342062048728103126368153872583195858848108379419971296829785795744204408018541211804331358084753419673390890712010923031475050255456231317245528650609038935452185965708090637489752663759364148550363991055091638501141679535305254422111202424030301510007493070026267013195909822841717967262853310714980889269618268885632872399685031988853375512085103282318455130310656370094146810294418311966163523944829414523472028638414723261396867351340740037771918123505429547725986522301896747097322161226361075695133155477218969456692949619220227489211844435508582247569279533054698553621894333586989401679818121965317785740645905555320676380633527334808179929873319884325847141633781641285041336262743546604422788989878516767362706986762853243098356046364817873457651850396627609740068304877731436469347223112209312746713423887838713504284810042459208901640239715009405138477828170413615736171476279574501906281105024362080550755839453061788048584813386693171000819486182671411648566198822174663775232389234471335909115929932786364291524766223028872565052674159304564132691531040865638828935500288970875011962159868129454463991338619861431616113682069921589172598641418834246184012599341758548723218014569433553359901310874267046873891986561911809279628336971137506438143570683181077138302742211467388494673395870041685427468799555000525293586997296291822661833537250323697628711823249988335886156564759022829425898293631837617247909214116748655880282509908929282752551022206661787336920721552797475942639199284550368276673853124229524182376572421776151008430930264676932849262446337787269551372977800525896514317815847711364667129686428401257722966333199435631809179237213814014534186364809929817142915724646606303149523192273395884502096249308599891651029360170687019080465268416943212653109846092284954982526663333263754454627461100610812718389237688334741959290885497565014034078601134094582286470161190238800293511802528509895862756240539373047562469978886331468704510338776959464706850301329010775828026215574306080169617635009562047375926618383070749348337679375599740960302907106461168843505680503127241315583716463492364153121271839832810870494350580883899018417500933039097957772865948019607271453860112150759357393463378565294637960475210488883470694332286545324327651479953969483823236051985345474597804483871075174081803028840785700145637792509430088410011054023480223205544560236494143840055995765249249566350875553908305978923381274824927064467650067368230051917830339323377680744977860416119308021472858702609292658018512107257972496568016061097499359044450394983674556996032956167862551911729364403341392510238195277225807716468738273451451671260919822293554520180253492286708908089059871634909961879924386046597016978423358827367270048865598680281435786565662308448963545608429162159419060575130516321784720884111574696224210690642056357787271326431907259690032964196027799719696464673490930338727715273831237318468007249399300209836693497553086393104114878415531066262117116852567462540339525691750797283391219047905513320720215231973929752934541976199867662926537439063578881729863992096289286737591787712443445126538541392748096523033941916295971540276335866430972646935542230446980570839635200284691811781231863335962376490631295266900384402939502559364896907489500292185553199284719611723999330049069457147828615651159309854613741038494671273455994606140898241088546356229160488514943470540840566771085595853167359836139277280805551616055049038502981022514243261458308908487500027520893162977206309925953189405603726373834311952169777779249162130382395807745779760607277668634284601491838340587871269554898945362560861746737266381740401044578311746361097623245954677391886316942425682586313112021583178231809930304593991554917299761685924288914535453716182059885967454958734530304257869839116746425655056546464861303005260269644531914781645321020091071954037193875928880253646041591149940467993238270659566693487043343641461230107244375254468504108835434872356263420477281560265372710407419623833540580630127784804966918339233895467301663209891599423255404897617023069369699838457795117482271376202496928073245259076464288594431866724323133852696190219393477892361757192730464410988150393339608561798613474862925951676237412658360850962708720914584141783278599340231324577009202823555990577245368616418147694156762251908635853053584490531929067228524811697500576416602282503211951893050317385701010193364931304846474195167746259300320243376054687564040101260544125798710248313041682805590387458580782191352253118637565372381928330150569933025197440084360287903389332409300851961103032524281745507897009531468670060537027185088580326128055596795435084818155371188039305941940013475539161156388086687430158298184766376446072814182924241389034248166666684826408103239763173694326261521967462330305037556238191647435072944286262864803103953168739649047271483434563136121741393415282035127681327140129803472877639624071902924475098450488484456287421285458322445446725711729426195271802372075727069367787520175624670634329685429272814110195813360905587547280809574914441074699681085681098213051593650062153211256734337130081821441961899494311665500975172689060227268833519817470185763253979053553676784923265588056321255169276880288983392179851269144061700962380247867792958906619198324191521853549527672853045461449186031651442068914300886461595301755033930260397994569673127123026425221203803460816592274178106696211150639845235826912279487445842024848864226873758034540883542203954829538002173008943888780627045286835677540520381576285635556924334460818604647843553779632260471539228347742645646018312263657801627349527259436000125660408460208999821974192229812041773108084200538260792088829149353516224461228751611270064482415498033805220527831590477057617954205632365967669057860824127348132250868306715280894255438459274714491760772722980953631836252951835383981281236560598234174557687540799576112411227195349084142742669934999766366576049465598739487797500677087582587143437475671962290648655709880514672763836775506897052063070234454750879718846956001849588768326138358735836051416626173585773672312016100583527910917995680410558964559972508645079826708024962606908255151423127724882336543912628173457719541423080372738619628077597808039564291576355494301367190199101998965069913315751010367554924066052643237352104526987617130396552974344756918334150376090178729063529191855761678620313799829625379557840284633449577468125634990114743249475613830488770913665097185368310779840633018378795614269143241119749482706044563171674916738362853685562590154474646707556852843803318695155801012307323782922996095176878492805986950156951382481155175532179599463758321776119710000204842571289755370190371079064967468592523053318026982079002031846806528277678129569492802389707010812202738201203690432104555527951557847831870483729367597563807548877463984198500239721237924465126877818869016153192965583409840056844570942032956768421933906238677967424531160508132381288734760753149036789363764010085480456984504408851015902595709723984501143524500219166497357125498236010604679881041287803711654043561500204734695301921284382827378053808273958123762120670894482798620095092806330873482824389569158587397021381367744180504105369511516303983085633416771086057205279539008909437356485427767030642817020945346669429350969686266356305078542160836245718365724276419309151489512188838849889661341539348303801523772506811657523535348805190296372739457962885020768533946296884626850179960889611345695201458956889492516162491400857078442066721531977154119855853358026410063874494960322017722210937454622000127756769412525981180387120419851014083244826731245042357021984885964612222616719283457723413152064518366809153544603335831373954407791696203922315919856122544472799944090474928242058824276872794702818083599709406568939742573341564153379114759665809082963804674167180407238245154692866282067776907796415840756157287290977843506546250317396865566983228333181366971150201093714776520902267770882416996168358293782503064846154917787797133817354489269776222346377148659606970115905477412773240401502199248417317866062525517341965726057914032932361631067943178070443731177937091625877008769017229484129359415458767379714345040981771853463497035920311297717405951627282715891748462589938574768487676448350848112025606516184812171459543098112559511730000931639427300080943333147244694477703407734462927760041544351611221328332991618463326736214347490386740070711807518048903291350065126202916494906871873300215583881779854662887670240462965127425876007904838602476551656555937926476311048479114690651196816513093338636343383379284083156108623178461740857856022492502108814626995535811557558953029556323560298024445389588694159840706755620268354185548018756529708741254014520290971222962777971215684347376529413263111495507429517986374006141065767649966255957448406837898830196819810681967599276634856862959947109862081501443098892017352309454219006096373011715298276491979643139033107539597445054247914856342843697605428857761376944771339388419716992867165129360206002041839464237217169897896169813715993928325803773287057493048966134445767028462755864682624043787945394833282577476417420562662506282174921924014389077242591358930123688901431632350445801520523510653265045440901267586163948510651422865415866007766829959728091002191558404962144509242080049398516389666663637667494702586192552867529023909880297290970845142737817432304861860763873159029639595279835467476722967718486448813669213348138670729331210804449586269504193309698201202200205965499797276908007326273724766612838956412688079369447350493693764536575041612239382509503951084759494084745170545974926452689236582231321105356143620862729424517185771229196433068264278405407717803362495482007358782817830236839902225868148342630775460082904012871632903912632217711187998352960598732273279635061109830169574329445456209673540554087326150547547978502828332924740206926400733302577874820236644624153110380566242772472264436123003583250251592884303195021271305010046769019849024725861668282906174381221877544606629473642429280626619758116996849647130512889085158544011667763800744234117723951718793547246134475425271742559959241651895397789596214678677408695708212046241114551854077050776205538799649904719915750534260477260151712254835861901315904140703900870624911129631154484327749175658846978379995986703748495150594289383036920819126396719937840845115203433663515643715822630117241557676698958130539159056549144826056149009490993108828111580170111166285065413691411564495614901171642838728992187808176863891116849763656686337312341808918322565540099624816006862769449573647078674450696130374467055526368384593744244848172407370596994056500940653962725218241947823538705792417824570502334640478224205046926250638055021494717621088724366606311337727532251566553969040791932195782567013223980186279697935514065647421127650308120279410299513465777277703707889139804668637061736110165009456623243380564840244222975180169048129252094764284366974052686913554388351736222485126925829375778398572078395048600052173620672300288730749714217078005527608857127882095168953509203368593420904767839023665373388453007227014144868092289596919897655516935963723962780108754090608772213708711133366762858109498636835982386932125013367434837720398131657557843202535360526279530981384859363115996610645512412204396898779925341348733967032756568745299343283615822925745005955771092840271588169086676926565671880764454510064200184962227261709269198396363529189204269359947289023148323544323196847023911588951990158721126922070813965564151164274132140081982061890391978018825282987294321640551656295313670691037217152488069650739813540506089166169085421456324484698724454384724243325444246570671889639483758757058454998155903290267933730046904936759685270253061858115329962690693243764553898162707751178539915245215755371233564638440163146861698607908036714974237944715087690766440484257614080174066591832140497319702333700388529873626444301143794736976224344895865117832107840890428740114513332796861317690935986008939854636391397024666305651888444085925917109528923034793592547436260592347843591290567934772046920990450151617917132166317709789390794015065460184895180090814440569483258175695952384633784043048221797328989454882812274887102845656324542799588246311741436371813952148595685338669660023062769451191664806210235131189407976888642818618319602235278192014332422306831759710964618018086341666939926406621130537030280022004973799901706052490218074318776201607022556816772089613110567392285172292127900777539432367069608419713642273448667399844907624760422548808494097941214437211618363982659769747479547702462797107232795309802079479802635003256660834624195201370850973898323202532458279890909539311647510993593810440581217388886596105704063646481767807084738171699461578926881243614525249583623051554891243432601772583290825455960115473598015879441044612744138766889210169872436853343983496917727122788333291215715140753165621179412940813157656454116010833385557007084702045136316063806388172686161565583594554903654814832712824346530554719970542745807745225841341185988761894909220708586118797170344671498130303717845952902164962266891612070140329719235739414702778179418457248061243796406478030964328857863216322195490601958237862545065222232241867422990815713151601061880530310569009438971678377299427550029532335994690115514885987765531591925104060468518894356687063589123098565886323438768939426005984450319418698366349231335163384743495013091829020145109789622222894198131384727087037697964067228695429174884468254174297363332945004945146612427683488733213386597476351588422289128404804320371715858915800951385136149993777425848866286844354793628424344561977988467424352158005394951496492704300995201794008075241729385578938739177033078678427224003113654022199277885535963211487609940479072195771788449339584693871221768318663937906583055075801066581331601925141439388171790664724503763766281975630518529072629496417448090255752899091114871043593643425246337054627131728864579293048195734532638659622191466458687863354778924924131908190622447453389543370882937693618057684954261851772981193832661643439680697143307476780234342859484218527150369336460472893443452599223987429297297145483690753225706281285156188686767286938472208377520935119269526071007605770788239778251355111537980217988324116068259394300551296737984263253527469436154226527961955400986893501498759879335135619217318416578947232742071126836840556373799765845601202132477284592397263654224739000834964929479457452201952862404738818992489841399710757417638226507375838841022640983760496186296218130932796468232220442683952894617779283950985831912803366186543024695229191139076092044018076590100683266383200124149812540247155222919109135448202667485143584357441706949394117906714146136933845693511727020723389263170678252088337043722498361520419128122525498071542935427031656541704916818007622104786294118899447589819419688046905156481650920094157221681563522029397670844314182772528566183469399754740611926136899835507217858781506970644941873856957771301171426708525654108917936181311787586906387186379339380647697775362033622702087886704555679851455843730240693373665243395163768293637335763444330287118196476516531641314027440557856488843502746815029380357901428299659530049077120805317647597827997537419426354803492452332799432751007772644510721650568524840229933025477086211259583569066399559616412885991582845627843453786440561384059520980158412064078660718749582214119717640570617590791498666347425239551340739915406359872650787946127646062492142517763997872373319653971656069999793598180592867252521171589986848720407769271913872445682155885381280748211145622713207376135722525565135079309382557194121098319051758940342335222987896357143222748618378836479465502329968752417797250405129884256696493504717448839153100162003247899502287160308896803596031991330000093327200163761526319836454984081200655365305079867314463534295545011105531142598795249714522468379005804765069187933959757674015900850552238281153304392551585776373069046770992532474344810977388847376598604420314872809954713782359645059755692625275926552181915746163825772558710843351030491752545454090247314358190179724443003433731724665628103268503272076618077030887771297579363972753918224731275428726442287644372156419319429591955347588994804997092615950235036386665687091408373456162937621140661385328549768297021345707671140276387092760819089320901448612470971563059439208475277527230786009554125803538923534106991551105807839799459325801910593942233110703717424979465785658255935292051121656755786745321723945602059538145796387179948921039933605206282158823852587530058365663534765521509886427303471080834723644412062949785561832353970557192242534028422896971713739722961585477271093936180927557682178993252125271129949826882737737273457090210952544489052697276545132632046568927546534225149766760993685109392512689893275403218365642849457208588771800658922098164036508354220626349142930775458681269955411790557948931093396562472059142210234893885062006752253458423955785011525173518250657846657295749193320054085841390995636147728513950150760388217097024307806052623015187059068910666147216161682472606940262513666123848311532365972675376718028345106108044950495886456075154638380391039730126184957426391834516043573933724928457564822727322879813968789541808671439708452113594234487898134925313748821069357755659136315799477081679989446764726785414792231906145185691983747720107032227400813882897506263684532705215208905315002366851439290929484361390001089594148763911841959099809333903244489760843394743960819250694135878178629160947114969662827539651940894238486220972992707252373764280513911967411864919576679760431072931362661174670523858038884083568738530420548458717974855420364702401701527933392198078661975098594379807546407811804571237963189364700095082378563717885541777109823362507982111879136667814239627164103163367146564966192968562971943897670942118988152521902604595855027219611188471906694035876764494683594733762475611529012575270497387463660110605479615389293976512452182123125770055132057990693566741248316170402701035348705335503887570451975886494222152206202391173167013765478351592602056642911922740895520781913817143695236801412552119375855782163335052737673504195159873673622873189375754156208326238602556196586070787885543526890049809883978911603842926598789832386591700879869722295196118202071926296062786334612727029398386165636851020472420170061101819184192827670690400862464350201601825565467951744300741754747021571791903612923395905597141508479150598589975369367990011366821105046090777040663835734318547421845463486302642383747449157788401061611022858686281209444056091620266867137249778822567851747211620332464841787238970672266900579611537288737673714714097077522180680328598136179371050901702064727316750048102055786301764402181195051101349382167710909573803878095195612767936293826004620824923692751040502573675083474692590374179622665308592936137448337299871495211998801818018308206381163960642267833754390263707358058941812167909101384518327627378212061773091329013255185666201493689610254906720696129484308555206638428772042165880286999945264079547130939760172110945474034963679774258146054644020827010326155562691346340111442266770102387684431542860667016947926404239715880800019186095677938896126841936816045334291950613602558217059022048033141192767276708944112103848615587775504325495347823689115114820808019142894086409475170913699969155213660302941754213509021268337450285257304021128211290961473413189135649540576653636666938444730445637902554660068247698514861261699028024497594107429441232399965120827276393513614760332275746680958586585288303248360102653690027680768625164921243728825415366517522743601525993416550601893313063485780435106144630950514662214125559398242956844227147427050176039918474811206818776076205704418606607681374061648811860244964396852033636009276645784026863806792173775591071778413190665234905668382976168085228746789446452552953338675865960297238396482291428743715686840859801102454937201283881172452557242865167776547188560622775939174494893227157653898312004364517988946997528873760087841195799199808602147435294408210370637555068825336252995088184123027563263462476004304168209261514634179511321562771797125491055936329334871258723309278212750415034422455717702170402908858671754955736285268277866206371577390218577320732232610507135380523530998138394659615216068100286516696213776928093800402622358147819393338051067305276116885786872343736933833286096584236455483120291613900410750424792215387678924793572080139772673320217628959148629378294781634548118691986234201921253860075163949360665020101365271849691801274621212556453892883384354745783999801399937745076310500849936933084626472119733997136105841701999200997195097992844202549215761034412069783295638796509451348259539554450490196673867821966118970438030205465162982355513492192235993538935854301926815206536884337242967698442970568541692525824577926273633196055929317970487090098732578470178080496269985807582187563385330441395069513189864218623576622116716734429274278654032996775721822436665808513927061158375111275410603961431817189148939398779258349953824792523678139461892624370403241705182157586212485509986334487195550034381910735565876441343492116709886081419216966970354166656493055081064291114436043663094776346745125115843327885683157857271633428895071035500889644452033711889381678414621444703740756383334368859023455125788634716901813054519578336712095731534899429368809085676786899244480405890429026511180502802450615699019428842342259200300572434729895245912522003009053951694075313724106917308271570730052583676838848011985988530740265242444344912726357022438057395122513730077253739492413436413188851430712963270800884723248272802244220342557053081964159899795649801447413022011778329810708215795691490446515347736706222023554132050284720009748996215076620942972690197348253064444848294641377428149663681714413775149009496098359506366881372191956954844179532054946403313687306296730752095654239669782770826211277023322184747349012327120148055594491028591992394564672859197093623920881506162305315044151745564692785441134004488598015022174020325994379642919218399269753347934387539529771013568355114492643614260196299159273188672927624649250554321425576821970791208198941118185087365895164457866822755683761976092309870169413370785804870476296614308579937706835468372292020160432070970186904560496929285817948895088328605615530163010803553088147589072960976533327645493901948715324581871682137648618451135030736894181260877824794631450574085547429830490636940418830834510962185201098211451148012433090689618848699527661985452711033807978301317152772966646029255406788451159966492430249291732596841432292831355651761440063993423048174764361884361357295546934210313773500112321317706850475806330542848002748599281298613551077385018407925206528615181716926374789710643103219436345555817424932851382018574106430793103915893435439952270499385361928731370137864156000637155159298710450108451273269781064446132716970404371530250566039695011424228284696191965906011010168393325260626588260512313014078751695812616323346855657821366926710480121445711421393905090717962432439091721010427525161202000659420883983741805756229114772978514214300831004528946063149942352303667100433200786147698881241938502744206269884604209792993791289344187387565018663286710759681607188496745739696788748295479050410373663027916345465475226640433727742297628403505793656169675753877075850933395020072277380041222315173477733491535578731093155680628926890089362114090467067378277131090666540338727572200946415457754937634555237751138991812587162220494373185434907515874583805407915408086103212132244073194509559159578345955744259051134284554624467934685322936758289596191574044138148878665317993977952234215190476353458262985285205479454213966899699262797756964364491628927372748186907570224683350305868276913043265722285177572396185293953531445687251381312691357853818308471595488937080398542640679957319896230762012062866688549693290828543717233295244695656591006896422180150826736074506037631265966886342553071091094403011770947811553971236906713548406709106195551657104707212210788646776771356279341429286694664619669813444360315241841229265467895439479744665851335559037675251252399125217000303357569400913648294140965756605308854713058522387575605513914791149407967182991812827317277041527707156769781757788647806343666964646539162766254354056840220690895022856647082875143819349197238084763352865739569374004315396356186736521374561240971663411989524776816736344953458313788060141223032792550424626361790664633799307381522281966509024548881568214269710432692972004723601480603272230106411945525838408951292108542675415957732655882840089631992970165105884805724272502346290812542497788769932204294908879637325234628561811056504181032816614623174354021177646038925494881327334289930222285141217199325697480614374852245927931670525588409989867271853108033227446984030422790639973316897934520994561442549306038492005092188762972707714312670431745887764132552247068809716960893667862345525974713317134128975691149128406739970309812462928133859117105684269232522246522397580665052884459681533411616471842659208608145186173556564277949931632895939160446599493959410829582966080508647290209561224153389979075154868117576724225637798550857083324116630053579409536677744406175766379654849891674678569944685849010307118931241937139350911356240563581512870218785077607205520100569859823241607462502468506105516146431935304832721523449194645486882474103554458701665966475085872621046108817086985084408854375445447834491918899706493071402336150940288108248887218096039919966694984264898881483919892915322849711296838089117423325025104789335252015255803956344340912431883136275676019057734867535807262723634200407961882933973516833605500459357094503205335370595231805375476471883448839272525663009227853975492471707483476275370642313927709862652176088715719521959049751778001218733772833319376903142511771019676503919775473843963638802214913650765487888453887344385317891531523852661865358756609542437997793710346415196458888293702397310626423662157284430230943661117029280789286579994733491848340267306100178981258072646725623570015832097601819211938441812851644118515684960332512670473440108979931259002143738030184487366102484943173979510703420647749245366514123983391716914251539495716147265400075614415198123283022120117596274490721555473407891782991573169023248430278424487415141018990765034847270687898796912054635748182773485959197196611922166998682842842906194733144789789584480438471843841980756372464406718526595401758298181351705493387947016018483004978024716210906873290792744606057852260514238259053354013158353335388896426663614981050286299406422922821073512201474146210602539046701390533747441247729209846079939757007043391240133603651363217017825258465618098822152119097623689851002798177328896935185968711316210217781097903514838206444837931687186887764360935456360310850299863363483942308962733380926258539998650570785856427996848346373284583965305094489339846336247920682727998539283587594949555942109744704210117863233855410221938064694554990474690040192226041139571053688965835418232717884114098877542048808582249881167502664404999530845856718444343028381331120938406436843568717390805997946232712396987578211454079421880841741327761973308204068126127557488462730144938838608322359064436923738310857343605228467593680892602269294524598662453882778844437144540929754961144512460279313237724859088483754048344249862629259013095210782627857342438774018127439430779850727835857580459472237475802896138267001170660160605238075132631030320783171049022506995588302672252616377188163577101294726856496383104560067712401038743002006852648429447464373236430949118609519470063292828071572055112737203145876610136636143923321564762068588360130338392903697125353527443653693073722050295491547871898177374475174154312931911690629590426376001659361857916904002383305605561436319011561090726565461292293984723043996286120627627147901205110336790953360644960193168668957047153280108711301722147285449114331679353975085575940059371109772368285289813303607160092479990714906311101513303442577169469041046750767845987384813060295638381218377106954325257023858007501504869005002635200934765491401285137069839682668011656854325430650839160942639083309638824624021057767568995121537577704372722047336557871083267063685983424451989462896104754412865396706419888288107163403017705918472947385887952114190862625035563250441174435290230752401039053386148117138944837027924969310181600680194026988585927831141314278534942480630155635085856376239445225567733588483451712299198368957856733390069915144076970623251237090065802127628524084248475781044111882366836021027119197420385012347457129566458131031397288557965647254025100296244501319958666467964036479176311448689482311770610494312340710212553024591617691971621075834728503040987410852725496767754428276997877461731465468871010199020902397597674386526525119071906903807450600348681844302884939891910209000718310029697976452244637401534336618539116440810771797630929545357605215128685712616245704671855642747979847423096661639444928099242585563836534941430079367588960361085254216343454455545258035716601581085543273682776749693627094462771831430220659698824508758858220656780578689156894926480166185200632917744906502400630663966866159235770020518546414023171581776095133155941475991193807259103861499749689153291143736130372819388053633360931809806620994773465457690635765936403245944513143853577580114055667104264794207573127174549797691282122643982003486431711048505939775203176465409256260903588416846056908403595941363643702883771327100773475262567979701224101175447054462376283390786893192235499790036756954367094580832883325552486243473690578033026301404658337914472206364461670441678072128617451221724243701726649296856927978930754254814264430898694606024483247391456101762781674874754548316484927715572249085642956156834924187737329789053955945613138546667626129527019315370305377360106126037253212102187142527879305273630573419284392938876919056511322817618906083328551027723036678376570690676410003751890850982456752427763446876415280016740226258735238412996610207485139431175835167488025389099661586196284714633585574167442738846269361521869227427221879096575528199142181301010578185981629849337505771567863063639567160440348524809190928449348689498810046752820916460875370540765558570832838537560034939803557563168585975165763520090098431311859077858262438919640192166143617764983930228356293117870398083233550442443983564918464209934550963840792810593823077342349014291738496728038336114734131971170020925694318044965050064419226269391689041148594865609214064781561734853086899974182370756048142132095214669033889717258532684113675613075842489479254676316030527941283984464307338161940443344965444450502562388088010979615297439556347680159393813113874483579618802490487955533324387500087747786026820005303604601573505995800518822990355495239269377305332787749264530001450543423102059593042881201887734931024555101379211445335190165106168793602386356218447617293970379368717323128294772992015536322037428242592487550500969657748347747927785950700959917473971294462269123949216533853922095715183526551928632012476643678330225568428639737828664694501777755869353601498480263095217015410585133877390994887691989374985186825741271249326899733757807825230173264914840674563270149005275967319366103904042526082903246889843694642300792292604466504466169087352457127807218438037960772561656936337199322637824010884388295556409501175917904821691747097042894027138745150155806333707194373286539518595500375155157070492508061804712447910571308818823076301547383874507322148661282269566567550555755944435569457035675311262468185893671560534002050968494285456169300397769555190523028674489103760966879342878476235368703225332859991287797621592615449285198857820355921961646433722064999663494462144821363929788179769877618297606136537070568437226273097791667814697829647248993525817192246677788410297300820986686324199389070605688265647731437365018572541624699972142954328139461131058119291492931992501933140354998984387976262870302425928756176539882808719978365807446322919538242477729395717263728533735472296418787576323750247896719782704058786783653308924785016091132680951595093243103573402081544702959302624030619307506787786845709869506172599852473797060181722926564417857478693203800557990439725341108961766757410447946340276149284994527463575556314640534792731205879582323375277232030589888996630405759434547726702024417659633595842929686222501149887252904924931080173895889267571098707980237294065389165987839537836431413823139760629435410689829014966038478177129447932872725632879128774147537276355865370714343815315606658409522306532938166368936661897708520342167718967667388615010521765002801190712438971738745416181355103572807150553506811194158965275020950786410240759110624617431504260171213656716388057776410954051236597705201046132501209477648063177864234792417983880909721171707634548578437741372759958538120663175932505439548167695847303419390642367306388810573408020614707070396226788487674665647531838574359287453122542031211569929669826707195767245202723601589436749565029103835733087737713971189358476635944199906290628224952751907059252485228125561287022637009588994700999344590901142295044371193001927447646884469458597979833017194003899689941049070218230584601559872749862002623883598040740901236691113846079626613200084822706954605427686623904244198923612527365529547964057864325836247911712955021550614192194952358499665294255864241055770760986217187390601473284582172075267903182242368634943147183284183521773835013664868203498005396004999354316708049302279729458720312655496985264329984879361567309570216697975534331236132175646600967171779099941816106808709064436314823628034470617412233076163444264008484984948464053730556626141565193074312225825949622195470972504785539854960363559507364334175975185031634395592703884924125585856682982012344164044668130595365967784605719705658559653576524198663417859856970011171158179000237122744543258742288530394879559914252614916416167514833673744270439649802249461970266458460024317455809827714675116456944458132053221581397721567098956211515614634213903404713433097298026945497259178672829093313606878000937898128201179967566561162427512924993065086481653134979029401625155559452829604791042885601041242461210405429963210498846504394327676443123866211150651043790423795625863707696082366652404504219923812308890453623381631185919948953419125397468355902974771284641316265345443263495031221974843805450684138728320726955619023944430690778514043234185820163530923959968280727430093227669975823784167523191427831078119371467850052121954857809340644952127655410642184790951174319973199389499903822560775948759257676853874485911899805540527650747997461604674644920999605911441886375832386725273213047243095687118555169590235607861434084507680687234207016090080401778068598139988764599058660632185005852708180713689136978678162009303114868217332167046860104830144456766700560990292935768217220710120899714893735617104773181176032775075666547343061914074416072926191535254223488003272318209754036666629846319272412772495880241565273835971064851202660179673521763365292313805794093368921308543637114228036094649962121356170639879654643594265537742881999843733378686695077711582271985963448601363596839599219738161556185161621370377226025220747410385775005698198433184064064251115990848028831951332314315743566760302292410414405003492632765256787346055805061091594619578137336935702483115073750395760222578137809741922064080812195807781876728538040366639859137784969104707282798894194936584931725510311691087656440841155626849798348190774905943323249278077041245499644506218972913355122238575771711479558166101626565790375724519436889238777585825025360266187817478564515645425471050391261070751364688875029840892418539089735990372869969142319361622281829145757538277279768975770957187528615936802008004671927409805242629321188767605372841393075790519582639139335698989954095194764359698764042943414190591834820605670443133253858197884324371209628679748184895013317687863032818305069276864160740435575349662392214471955826378499713342591900590653386959897585073191343782324024147842761615226477409739434238597351246992232916497208279915859750093890268869544728808558629013458527718352989718901628213149419762712114044527676840459240311307031762713494302591759534095659568679441576906708801137040900267746081199691956957738664291801480865561602708903188133678162456475893698210584493280503128477269381990199430226900385682475171724802966337689915406353432616785379619776743403605752740828650157751497523771640335935576050410771243986683583799574426013274405641655833751393035245004787832328680069481817657482195707674527597536951122013988496729651463509647106992932738879064602680830249784320012825797254704000081734270873822433275600068769130963804598884020491546419080445501677473727840224377462131599076364435788933524609964226272988994412683218483215396232501209803377271829558683035192789959867972606108361939214730633533185842549544796498115785392863047143128502984373310393656616245897687269071907755556358206701441703268757104510454796828743920965181068462037395914060356352345168364832152783555383376739493814403765314996294546913220655179477172899782573022756961811038910860250986351372824703779148245622196202787746454639374637888093677912381693531836094434457809910603588542646729700930638062357479949385092541734367343141762488478479826647913089134772452054149569622498246054135970686431557523645233835893055752569677858567342053601132334229784418549091008419760090038045128475697190601156782927526179851711956021730356344479363874218147007128423885473597339059610573656249652993637977277774494295726424258028769389416682016163707131067080119311995093619734842280022815117692113816386833355592161688847356989612105244615664745514794770033499877695173629148251063653359056512517360494358691807720065362739850985084554056729212894087241045485546022639466708278812557113069888839276144380262371919546253874973498236277183892584792443830231638999518685161682948753615660317378607462935433712201943239432965619619079630089672545746941781728374188078210232823645163017637437723234088576102748931663852907644134490270138001762387554071130700961006659633997306039939736286726523562078999078971568999936722332963871840153978028661174077541937077274056695697325581224289102234338164313232013807318449118183391202396201079561698292110759431533580845840792715638694032178141433675902493863701176606912351073458342120205641169034769521987827255941398999369611550258383704060522235834105391056411066080635193546005229983821776576038750171773137798234359371645374549190349731539829736077224354703813197214815503490598604531659681888684269871501070947612329143396916847659831333526866426678818764820473758096301864816286229029882787008584269543984381121495809121529667325809028331252181113864217927168487235589338649145641595944959021796075640982806273228528943335202070434970874366836344430016141817245863972595599877744680248311463072061626500187773915446665385401582627521842171837297751928191627456754839296736740391256641354363421002666364280816212233293150469857626967600484037103640254976934821876921815282780489328984915712971408998484602305027305401505828012731012534860268075885545642203201639988864801470490031192432336612964160180662014566020081927026980534960134707329770020140769660281341646989999731301817753445242374531207044550548085259667187486465576378917292284525836752632659575592732628333275183970607772826224616061665226623115787514119014716228645118703599211837447119118003549875761538895621914013510614743910334541505682886425629781776928898086909965573443648816596920878492941544976807088967840162645600644712418961107350620795708054706692487606423754848529758668663959410263137115569741753721866421831077981365069331635553643415982400510132987709574679334132970373547180031019223698672056464186443487761045152289822832892102281108077759484437839636364622887263396471790546791262611988868739340472513226052323355952195109920711254751937720977374322573805576567429775590947164372746443366845090424550031279436907070942110710458937693074496893751078494445127752642359449811997051432290963474061457473737464244916786976317649973435163351727588463763452937028171364247319276894025612397901753045712808169506672695699456145246084384029202885080784950545776014845037041192510392157977783799317194236083597322831448915239651498071727620134698737173332602421424968260386936037379196959220141475208266514495097322917156337863439871185178325814800937936345573714694177702305854005741982536485069858080512214205650997386147198033011857258159022940831122500219493454793074628251074767443699015918024875184490478770280975020462084481805980274563339847790406622214121518876452099249833405555451239168668484779906098901360860854832626777423097239202937900217853865106948925359291474550564565283261568082659583591330023214643102691622653493542564995731264055425093648786772698232045722661083484276828901217830803315988031411644623282088601971282640810232416922793806820389319661733957644608813948835296824891399118524227173531123697546408743566383671552678544159092914124863446222010871391589753631331696406983901593231892649127187459006316303605077401135964513166893051079331497091328674018334090082278942750297085020290597376433203906018839966254091732294308566302456985988250806877752501528842686615718770780528629290707761466062061545182295429489651487184407012856971813067237788368977094812810740822919519971624648136319148089772423129449289529713509498009628283678953235642981787023506622759180956415339244571539933415007336107148275573414541127216811012837607701784556127562215623640922580381744767497559270393866519466286450912241332961186687926966656946091322796661179478921359531544768954982058547389885471800340841935116806351474093078826517475024166608284340657366288993619955864804520920181522202896265349600670343108214191566567339284951737401203633030307235788232234751625038853368339295201330986836466137037447354067155060064698448355525662630221216135468598953761948979727410672331449293125797680220839783460985923048733323649003962506417270139853029261308635870327723229532469868412589541261307478257473727296268249676808306246864213547690053910473751348727957043868233996044263189882102336003557094819420417846459606069852269649534896594758716850720328825994358229507997469882649556186027526979708448929491181766132006461594224669273199431991011702071436679788001428166004977489973888566622442452222699751351514587904056597166817427382496180999985967452849016411154670090922565376262286898486559770063601581299209757978574968267944004711185891910692298881499570415447455764310639642721485452968004937571621809540949786051616523243718815364623927023683853668718272363865203772731978062003766071013311075470006141898571782164734173788323239018318946959426046729576787791095694148766125125428586818712315487453740667429567244286760910856042912843776083707709296664003458401536846960717342300072263416800607131337263389377137841224799891499497958222736206631217245195702192810150382559451378195445999698096968493569960311482831087179519032873260945365803608364459454591235942615609895390072837479517233306272169338085071569291701599130746026594030055672288931598167636146517920962566495267976598057272631836849472072681546682848344170400027436451039294768072088369897115241351018169436809003322815624621797258441028159967852616345378638675055217511030746931618649587816414652758722209597396974115130229830319876464580788911026123955976708619216168556873170163644328589111439422351401489066485269229406627488921822540381376440662448181269133726715323361432049673106738452933572249840384073543454572069507194986523397133868185617205377937885146004776360696606445137558071418596129831163696683814620807187679980218874796851502900486488563580059214209856287404208302449069009203779915793695288498294698629082079122917138515424179811976987917743669912231952833537798957572178020966916026876305704503011406824416850116038015351375799348351372741350213959221055237339799247801639232963476944872130782556221364425219126787551835897871935101543093775270000923741755840273547184561637554747335428606760237898486677111225483489124011888114884734469014984145552160381186459317607491085509073912992039579222726677067437737837089284139847343388560682630133475098312264552532948175695829261685065869981981594447874188479701971380173530394784143595788357979504562209097938988909762848198867841419032611648206218027456822047241599985929836143128169264775692802071033132412968761937157255754440902469195094666780404100513961204744910698134592847251076131014433670987931649598982673491198601143734036800155701060997211847556924723329788263738146918300505062753335999364156472268726796861902813506076278401202436432387303098721381323180606011445112619931443720185944311660321544206799684404679990056572485788454095047701119349561357386595123684568989295488018456046892779822489775410104860717783338418727257210267422488498052751562984346226540703849217594602431011208057622106017454026734612682098253486215429836428793215369050116807478531071336866907428975207541384171996803497366246016978975917532812846060089162525231580377300515812743166424917343338508990381848319617133691519479631848635267346291163348660043774377149252840804416736593026345043786458609016673869575092132731435114698336336156724838674717281214321486445764903236333090191276697455019898551931284028096667751729105270172941445463091529805716007467269510568101475327860678114060521405902711781198953079504949321264778106351471564677046108714167708934025920402110616582890598709144893397768962338203900316149180724897635537059939147643938390442048991283431426516082236401650372427665757123283321695008331519032680273353133839058291461358033502611870285671418304067755200974427325077227170627876841625948370966099334911184394667017625061774048137951398821144284557151191499221951005172507001081082451262551115903843432568214640890635946678098515471125100707414403018922129850994836258627487578389906360843226316199174908359564594608303500052141751011929238654833072454690351328244136829469476953199801580014162215492402673862819288803162088487016199743505949494231782610012285639937439173322451959279363141177919835616935283805090123146705249977195000887449976887473610510201105015141446736339940411198362067013779801975373756860165470177048705103019028470197858207347974803439208944649707323892979463084055029439712529865527662309367183389782463944534269664438512627952815558146627544287908569863285311177561098310277692597984548994818284925499357728544063679787602796560341447998720388099198676843445429286864393498017282316319666325378866932380606738696778769238961510538469921095241138262333506387463121845828752112552062442425638888692667063863081464286612142424881649516425739478013087383446308403339997135038521207624348182287408137165509018764839800515022413424417525288437736842826349540196417816348731850354239117315265871887932391398669948458980183609359732974945104417948407034159394023844028488265637926957452297362614893183954128321704109879550026585896573143375647538607762637663981889377481319164733427811585453528095196100219576536633212865486023681379523810770873941947032989822951214236483289092684880170004475423613047384156261359159685671978052891029838905601835322177571641381441470412279525165588794849140361891257939072924722310279782863711842394563054239872801483283579127946357969230060984362278851570693921757953052083129354783296519931264214359504707426608113423718607320579237584876318604391542273712816829805518559522771743689945320901996895999063208569125922123059620343544945021317232562283124112902241856240219519748650234439701570043413485319531747439608497926674234491629553973568232857869124215653969061236203163357940123420693209225068559009640072189720937232507413548589034635786849254133549717653036324484366363024128269223414376262796934004631962323674071330048507368234183365525016964112101764899756392579550499557977516705594147921692751564869114426874777912995289949489930556981967957505457469192401537022985979748448029752423315221957597189521129035878643868015885482989391245836926654145742661653653150948198168018788149806336922452633007967802752137391604341015369150153860061948890226374422025047747705495501635619479936032983900074839500401999870425816863719260150486311194860502566798293973754602493905726039337991903822903312642459369969765770337921280681025044112169650700908312077367549870050876637139827227114646663922450827542018797643188134146864902330842354517494239394923830436234450662929713456999923232991272589497549349682421746989089940276867443642949911206991353509763933386246840955075339887136733803905468763644807483603131659288079342405894165453261679002887700100557368455959483741101760511210710612530196194644352509106094499234683589743082534353686205705305475625621679885028864162170162534528081888295178121439420009885367209261580448656594781730745589991823951349417758171009397869581662235636021993199643356397624906669944774643395189884918318215304191878029644669904713142939954488319455682119414352796470336555711725467697538407019606389444666831684550012742715131931989403945310446133234685734198858524281173276616667888505045065369826306833190085092031483717107019572853648004673702565755484698174439352474194456769162036316447428941879647156773447116788866890026023265936982599184855091479765629602748842882514673093447974040415633613587614701296537187590804517529883791726768456899061601281729310088087731456711319962351336150433959331613088177100159072420150661083832949553397160666887939294627314154988478216385782677265690742900639893306443994376170862786737063758036922456368689749896597547099696336137888880967506884128472452440046611831242812660532814429898432133792506690691223795046044139304039996740725830674054378695846816577430588094182235885183800065149551680794435763858475366886572866560858586614458379994158798999724982493907601319406956175878875988548410544190903303198220591888142814695677417038721400072974131324247838765450190184564991062971300343211209051358372462904605403444445245100170420195329236045317753138867652874445157774449264865951195861265964891690392069279100864704616736863346159523761444040854156579314746809403172596753817562644961467121791795959031282934823767803798626296667495095124181018107595674126220731403202307562013926400428745910955411408357646163969834005833326284609508784569593798370993295462188206326923652542142418054080049770004210623827973540069085166944598485840571099292472670027668850474102036616725859145656187420103030269866965620224853444418672295128373883292793134206089903460285303394139106702369379956418985447994655056794677090901846410244142432791225977079028750614216258530955574506108964918167498145688420072372553113917707246569681188667233198848411490391662229497328847628733128036245340788855988504490562662896464146068030003682909444797075737401933334850873621662589406145033209694019395792592781858930597867314114165922338527129806507723159374960278473437435032509619277225841671814539567212347060391360687911983193753774586779844582163234611985030250766717561456101650335043121888359308341010454216123101514344736650238412984882213349612211069343909882991989679393125237781916496337697109679101656218904970735878437431756681738775572534460988800449294505799583845411815291132896301783806815516258232828046751743494781333606993281795403094334718058852182916485621236231832517407756386793898966460075350692633764841403770556979216027323519901608383738243599252356495705139257543997316304860696653516713585235536097334230352276729643470418064936580669233054019835473965098395079705501719095766551743624736803217407842167466023489017746597747613722347231538616041184459727373110691520831788337681065206401796427206997891562454027851768219761731181250737586488071904805068567399143495656892425018629778249875001532096721710893358836804601440917623298403688943768657537505108722349060763696734466717343899738095335167955216037518768487310566075332197175865691137104686019485295196048085325401886061773588257905176121198800324670221553407339984313801270359653791935836963175373664601176556668548425018993585768421478952170408822698172469321946942066023347138350479087905547323710981029991058326918471239384236059125249929538299110121485587053075465275643990467637235393853575734202761932680239755202118045011168547852051783001884040711005879965886531898197913777081719972691831182194674819503095792091164077847718096348527341989117454107422138230387726637864463370627012334300547507040074192039250170654237915674963638787202065537451901431319182008863525020726508976557923633045395099314425090024242816046955410296477641328446209655211719507256907749686656350928010764718079628373199105267584081004316117793277494787157454385583485529736027108080658736656331322329383686814323622277507529848813197404822331358443355464448834397578007521958053200670008665173952692170866380711829691356534797353543671670821820998758524578829295766600128370328688432143758786561262471351967737724560175624827146439723183033359844688815601184906776715888170179308145517268262688046939672081267136447718657566433257949127455592855376774161702426068335392575791875105173687056382239638086585682965434181074985685895701707080749123340777167793740663984966591445850525367998218265377269694055383594139447825154040566571643139291792053647101924191878008184969200489705991887307371530808040938060156732223910304185410444318853298423246878075340989518887313181971440509874295321090039672860294947027414628867627851746092272539024569690417148363808353425070540313435953734197804781921615853644075872267660148989953411950023936842617697668235126201231522128422096695107421197738349332099653068105500304382799793493185295142295740356375974278483068273015095692651069085695221485300019148643169202477557613038643563698928986180874965259871352123080404721403948241112044415700914092739962334666291765524410116801076142042019187706510576907651654972063512937652025284595528490375954540665349327092874301209927402541439670701173520279073206101651569585986316916299357215836874870068051480240693023215381755756611366688755349983527233904844304069911215523304787279121688184272846558636768303937456676416004979080831329938363478843654660559901432293847533332566197304124424959936976259836541667166519965248393830731519285366144288691977320045551346424502082731432273981467678925908732719253612685103373799611443137758328951564071661570554277019151888678913980711483026524552641656057037893700723739354947594279897049416117578383557898607813345806170896325099841040474858588445197628537483667708580748263481396021692577606569592068020530499231112971054296521524721250903311483974730282210520216996624826809491251192946364476928567430006856109090110890026174899927018485743438416100785031957494796914229032931262842228405569578039552321910614213172110926533843767136201518987301652791383389876462959119566763954227971788138729596176556505221068974373447691526179313499365674510128442287533045357809582731126966706140434710207004029173375307446187203921035697119782811767312705113665650681580981141392971972282025330033881042397305526477555021627188944883154331150357382326957140711102263718271098232841780266991008836343860546982816514927301847111094880560235513523030666166386196154157474061043857832667546410750514477935630856492896482383510054482191491667965029414773876093323491898511686904527346569771276592725520689472285839104664370268062484560336012794265533711592159582441357558217353096996095657510294278903222748243858864679383236771170849804761781972582682988194631248294626832444027984992027520569376633607145233739551313313417114380796315494474943480643541920724502481313756150111162160905846698142640455612051260318637478180566568391417250775997455749367737620624806206689493533023122617507873733297187278427111282062714961215451481192613162782294513048475891055376905285221401507214101631736213416678009001839959214575563448946893441194217471993655539314099944236521626895777982093026094057122668072136889582857490648720618835613853849819773123183450778682892221854149379385504203919705760644984439253207271877073873650263233745483332548220115823603746857438695255801894603228150308255490809795975558072067577814553849747573704370510394237449478441331555070971669103854491180168144408992379466428169932949150638757252409276871526260759707877840626854057454814500331714808705143799343234919624642060872729167575635631474893915230784949648872645987524077960315741743012969564926071696420330819233106720208922848189390456253027827538433239962793242436889101656621106320674269053481698155400608633654285589730169486862241622864230239419725313086210967258263795538592740883961554983626775347790110581096552361154430838427269529672802082573490905753740470527765773725125870134293518139242298384612656217257677770099318526783835708915503938537400403771835470249897320750308289330478231746506321947720477804429701637512393022334367889816843365097144624724180425665430020200985635221104293120535208407813114141658286414737321376410205853641312633657632711880747327753584816339646518354360421286430939658041879487146977721923304764738395002006177567289339552090285320421083556074270022731882730391708090999522623647428101305605776635788074364085163698028247403459929487866556310390330250970217042534892467659703168800729618663022742138370166893761576973057245409172517876847615967811081269499634276311664531037931241795161515008264669308193723585859822581975598226371432251646407190939597300641635480632301559463279266124926214747528874399345785959611565719660410456162495454330978444779988226841521862357866346293004606877414529686386271512259915312321616903191269208815368077651107315456815548968719146480429300147212834322883842589047780681559572382236317947413871090338167636999687179415313474279340844676701501780190253326431047283618718390782044268702424596267026215983251816136168102571873352540677119734261365522995912309812972661637291459975938991534439110403187786640937515402947829497557538878878079250432471114406852847807759706039288388481976174448220724108730232510167954075293001598662251240797143599918993693013908337197614349614550903732991278819852732492708408261974360584679198357494555361672197995054487566841689972994026552482859955975901700293436567868774633633282879822269989868000910869802973699293653854163907638521995370237212650799935539451440644261486744456816463646682382657607450424334824407460229480200515486431751827298841153633787922108890321505745379059580946329539143538780182191244352657429299113955997982289281141914208033568783783858410521403850312033750969650817918341392676630973909395035729314372596092808415424186427350543698524393308171671318198206432729661273291898326099637367776928290166194033040779124858365721134264247394309529872404039763304859511222873355613061513788240671210059202685526849697899967798837864075672608987603844639796670926052480920095571930008480065244611074632113081095307171647360711157583045157269630098832285378179802730083239978222173684900596665476738790741385471555855843506486212572872141485694420561033546433713847526033887477750427008930654811601389422377926947735882991750091458225205097292645195216948131656624581972890542809604207242675087591877261413169796625291381162486089692685347423109084903196206464403570040193226009244635542387347663688660209092742372213768049021641747927363601853349755822612663249020419336136485721833942014796560924798259269715431896575432405469391238184064711667717571565276220967048012139650808774368439401993978650512321898321009275881899221335567813161096217836065174411467847503478125626413415485199321185314098512394918238365556529100692967617201226668266357309079315397265097908176517900524385708618371559887284750486766340651792023091236720003054732345804077959969917303042313934932626120954789834320816083956732741342790708905703455273873343691667749452945546694060769520415640742647492266040648609436619896718366140183140588015744004570475292703689955178560726212073403701273261397110840874709764449705270325510096565929465428135991792829947048763610767506382239647253011353156712062464758922131247723281592657393666632190509462164271848659336332656844519364947716365347908270853371645898453430720441306920882378108032867421437339544082466154963170836627609271609493540664750665214471628948972017587225853011501759356755590486352221397253229601790264243495263781917254730810378255971261236948833901778218712795713885362580981769354786005419188888523337010600251256556883115682269155209434726397658947589102136948544201545885256421779838315637083015366923822313660164301995368847053516013730703080895274546175016470083575961647737404577167520750840516987326304713909274931912658482127905485234099361415370298646933319144600550491929002719945878503069578518391929778581970621572691098980885883268012005483350245251716756573155927428852175990161792803490768466295218120741765447692579572164063845101034460876074989004998776843889539156530026392613865407962543086618754633387555491052783126178934961722704023850101413147426047648896005641625884055209235940539773184993759971392500917803182021749066555283516620808412782316254276717840441663965227025227768489668671010151371469668460204134487456076962819773699240647341087878441590302234484151894661023098456144254308312884050084219240958518948009683925167689368416200742934556278852754237676697925602765310138339237053095600434101092369201090035189005928192091261593328461535424930895957076636485658956591609769788072515358471225802299233921388328499935135917068000741527296293320127267559429828057123751762849059414371068448111992273661224711040527998501504023824734664675214511376502305200429124655028413896349153010408060797683661617367733626666267180705038773299685037625297713998867619093178511764257320162321777409434874055795224451122508585245612597833960281305698261837360752442663999614155755583501137411514309658476540654395388460893229924423310813508245186813642837712946168845171554086137418290561328250976995260744598369980607641704857659930089941462442641926530564182581928769636482590374897606062800891173705194111742251581196700808573319686976675301256707355386586386701502888109551759411233477814710963023721557678092958924375007583311240338676580791146392936130262302894168504225751477665895715064277486827329752514534953707575072275204187063330086393303319147770356410794155334997495683476221389580757892217060255449967570802245531347428183439175861769203277591632807481881162655366983828757931265999579033003142689434264453604252763066656032066337632208417756254677304372550692238003818439173502382569138557025401061388671980939427961319255914934395640988603999984270857113442526271876095695979161114664712602045384995487419066692679309767103600313085976631051254465119501365924968228624388957305630469002538489158048848784604047682100387787443834599444810550551342611652433786490435607652899898605788280753025646301696713707866984627408415473042034264223960315107876589020833304268260862803556423304656061451711997258448536265189351182737809029698162530777995546281034569813042598163793644371205735040141798839363117465358573301987428997902661996024909933823919173496221255910615931473425731481912790453867775043968933655619112062108309909910416631122652507887637847619250527173179790043446913375903797070021905421251244295993663956075820605997970536629981807949518594254480989848038803497328993104705744548199912542821593478552106462325853515715536156733545863550995189606573514475355648525327354115221826582491609086969642384178428228635281220894021130353525742594157226212865683413304121197462945336180218237536737676176516819358797704229589692746720009480773465583852437330724312636527266753782967517754005052488697256709559564029025761602697637940014120130295678325312955160726475392532117086299060250245607645426980955341288545284640433108555225397110936477574693775349393525294376908502648325488255725063944237976201912630125450295905088086641636789584007478203238673469815968911778953507324466798075442542826831907882122873306113725512865125757903229908775943265080676884027086499779263109108233289647651576374454119089243281948972243652994836764672137711014118413856518837429005094543415020406414085038325389467983881638198067366813786690171527756969211755908205491522550287755091277878014870799343839698924084593652928257906264370009034740933887862143766586900980311846572758372170201306712335127317378756680406714628521037931639228927868045768808118241630629218587158044166782619508029407033164799702291815990505563790116931066025134889809320759215604029817073719538925325846375416844619555528242452070554827150498378251250774607702919905740669587061400633175468267644476445856724055649070628920530369346851121235380149026573734510487743383318330732720425217174835302811705016611863145010083400056071380545749328548557741563249850173876168915924384968288798246011694870656302307411569026664003361851291973890479218512292386029339652027816065256733313737249728772368711403915684569001857304319140384693792143357867772367412026374725031706216440969124624099412876676103940149904917639351911007591399031570050325517331796735650676993939816931253638193367915289483788240206527792256583764319317912465596707176732609072359950216188416185695936993109653222125771197707193444863335144981696830124954263576467718864330867720052075318750571486575210047106833305847284471527984155569034814233611897091903621093977574951027832081647356700799339733514228428211938913462485034914440533116581061231869476196734005185358608429751927201751487610121718048549928516388348607458528790451979170928705156326794021015030432384490799255704358418368068367750390955253563505817377186765353807986659102578399287879710556209779940091700792652922379863004542642856359139735044188119469254212555089078908685759297679065424057553993005463225700428843841589254851865561715802175888320605472814129222721582785321776323740193373666234963531839518335984009004180027953419410535642280210756671280354845961967016894591083176170382611110112616278643470220806491560154582244366989298591935345394725633742752907369341585404495075908067851853751572677485389286819863289293111245705046360709177227531408135680138023992661522259102212118300949193214910315680083717638625898285157083866665931597767059269316741094979019451654403943966566285446876041685621395122631047564133311287430013712598824241854187930214915581445113986683794961203337231163709607714890294511575381308145256867388863186975302958451539568311856376489452096696651503783908806152830194678649871623259055667401958232786748784492127068852282436862499780202925497123071612383194378756734621396809987949628470225510402938760597837062769707602288180957282028504699941535674019093165350070734252037214128943200266192271838192866790474577057334195009578649894250640322177803734736244248766437399450179215568692684539291623433526760063772004904004128487950419872318203397918549850109109573097419871418079605179554410997823904234602017276224291024005115672328644994526292089982017126302167755724582392534485631994335215249890929192220879916712189199036007957698677237567273159165764314437045150844154090051485914157338235861357924963854425357017447624378768270993939132985427376711607647911541837643211195168117062472379047006438592004984667783530387958422440317646103326785336857269052863542431015323102035170562837789863689644025613683999154692181341904609717086089416564226351171843296099815122395708334622782988970817805504386694264571578988105084849479587707175651629046518572596764187557806149681371124225657002510030807009397467448153159319519918531618283528087422467805247841034862285537839272510370901047381682401577593820664561778892422387906112921652275946198707185505695689644532258274636389720240553130978140540517284457786171619758243842466970365640646672499079773100169420669992278952186643138862858679771087326737398573621969765440465936900814371502288160127550942262512125526729614638205911508278122591600427434752832707829763385547259089849153967565503575678535773120113440520769088443450924327817249916826757700875575649394902898065874859565521607357472713009945662780181581269958087774384450957179011550164005318849674336537783576123256403845392540032975243321783974760703068566568843419775205946035379867949798717000407111065869212928773386071015524393703207819281004819650229342221876812692014324098842545246077418331550791432334408054334769770832706472847792407993384585150517692816739178451184613564319536344777728080294650406613745732165244124640952118272795142612539736202858413756482863118919371901577453048378018760813902466058153569705431633948573046119625186413160609063831727283215971782639710917451639135460257733637808939522520797350610678390018814003437268708697797351031641496111612668938345846745016564393888331088486352953223599610842748592016751048340206012160435981535203116135730774035605222370895360508961640323435339527621820988712685217359803555673171088211963138036672566990466939576764766368320752793709569279515997135260645263840515619678459503325784570144661507290096531350702092356971855272476791371219974681016847721338056158697164368085227280907625297277282688118008515032280540292676129162640224448681253643192790226227500752961034733930247461399621578713974492064992584518448479930440309683799860029161265743047518943142687363675782774879648039635266433879103614754372935074604162700895397230036134760556127572197092796575894790368621204703789731121432499600515783536753686430147352554760162963944278110343550810917214984112289849778467358030635695170909543919021001665745631312529627615933100792988393219599393537812229327049613004595241285517977500691291448283402867331526241624519367129261464104858154760508647472803289401060807014076995895660701592530506533665130316235325917386311673565088234450210878364754321898373451108725188465736730286532520813374984995067424260148061346692909258623004923296594789358240098862042691787448462688972677364914466932219015142121010764038362050864468684797679884420249575558601914675406481259899915693589525915343749645009058912926235511245637926428642167702022710824806201867861296215536422272113216274482288606386466915924122519609641026547545735656595463418924283727846833696359665329113332622996939746027433758437680172765529405552355983746848113382661107019097627799033073581100815629608407655471930775434814819971669801506164758981206911806513002587122028490218971048429606628302240422449159825189525580008670270378743585293264905363097927212443031874986502882005364890944439349983661813689658237136179407236656650291929685426726320934188346595411391067238653310665675887473926169559694919064032248982669829931594816006895665788174612415779183283935078679263557483746485334333803022961467782852784023137533507135734638468172761583935670532919389222841133085910414347432207563085841254878366655856151868768033054432636001619298507013177877487725176452027617160671131704312449660771977835468894515945185812942641861188714432845778361465272618375489465547860006870533956523537877130590974401515228394320365057677708267514701244384149408902954378126621506054099943455878936685539342621686625604762202212932757461785894166888335010371459024567267650131781305597308912528764588453417099409763706320320579446953429350304268502820056075313270079803541501791745066523315170351327732274384408771351008809618180679905433883637814825160261781080132188870290034143394934995938766433250329206014067511830413247122667611311122996324348702608538136875459086649793871714172305026551595335542768266180439588122968491816269138806164118306157006221398962348449861060175535369039846932724438794008799549545935579510269073067669525393425445471193974814150660289312524943144875656932834710519149265447030818529187861747096393162530326192157261908997069186450870579564566590214571882908378133341734380173765084196253003606651229416809535512079538282916072742156777891286687199788111833384447524717339785576192225444621372231395968874634988675502467092665523124815111772369344061067409569145810738261334688039931616631006707102210748130714682136164806855894979804009316029209420406986117649833319136290941344633445023144919060672848896874116734340170222167945017641961336984610901951071237011936551953582936812475488949191743781910884792137359030609280013954872905867888014183428960707328690025553139014708653828406762869719250725283461157662637874106884979671332128010646048637135796034359370336427478470417624838403344668109152191241901320672731270422110561480342340249567331501836070450887499788686594443967017875645627529506834960271268164003789922268325978240691575842695668905237314399498286877490325946616243568982218502765440246497715577803644178166407368737613721962061422353738287444680382888826443939153446382398546683863823371196631923588182713623029510022128040001457317344076944287124955149360617262839102839335526649266112650003010128236983479260345951126660163745349880703013721273757062728436519245000301809279763470421156508934698609290259224991321736672680259801920905948382316624812509194416914863066438513065450303867449847882167090351814308292464628706514181007298659168357058348581276365057585117379274189662073694763421843164924664374523342922155491406841123117850388426639018276352940735292147031580714344162919901934766695299110903211875097152944550582316625781149874315080204518558458512372464988375168534668343466889751937659454155069424222560909581534591159103857475892955276372336027373981065585419019633737921910404093753203525663012534419063375617888782565993429204544067521015123628873185452330290900559883929591803943670783186918662672654531667456499034188874040858457833917828926566091688120145858355075575958495681114010116042280402872589975557194082408623590031922202243877746304743926457520347274886533220045776293823923749185150415825268658604302644537680761823771589310951454425620124109053277795766400715719276869881834173699592044233118496514693211504023938179255981034605000751191731618729912416922598090064110032703321543804555494117684814112649720205151582945271809806475838472277894285049976579795121625421932070325927795743542329967593446156349192667471142872171127918689896959655762479982537897932430633955308651657327909161666652089168877024728990548693792984190716794156801517637990740612234732715808676674587407182198612279999093103222389830458317219634860073555750059119158419059224899859448100211563110102871064238246760334835358164699827983350173682361550206505395309456712154994997445060853757504644884489786884026662435374347496207608020617250271981154990863674283835849907777110981989975908114540615533746677152626091707359923854497234833832722404253409899358903420529714471121229204497084739010645882232694253212556225105425156501889719133165822468370913985443868417207933378486417849024480213944831804184560101184976694492597310324907757044342095764616532653746359966569081410223310136376375946136980948726844990101955493404263803865871655419234738094311242019022442156312157534892691432396008179599352910096740845839353332010142784614723013184579157517814389380289178511883690281506189406499469373782489343815053535028478933606606133318673643431934885038622117332406218596117513766359951002582481896849275612903876227599826679459653909310808033293183983807990208644230293467690988126149245989965796192575486722552652479038471213109834690549816087407155132692365477391023642966999201859185613468878122905918254286890277146769040798085923168131435368031224447412211105241483620844532175848165602141797027533554666288691263380459414908336843675381763344883658040465483001240122648921787983414908606536594266314278870172998573630673685684438742485616482153238432948081899680340758385421778407549388252600525559453207594295259052340878242474334598962773043427907190168447987359524080512332105892523948061710095189619848684971889036058616131000867682898723290752373104156348234645297276640360094778578338510435509942431607814952174505561214379804134829057277160081911739917203147249534779017749343833699782953302866477797789249163691004884623586158001568668662234308745926814068784877538712341418013728933415579099863998991959159179395244237886970796998342491480353049771031550326547951970888228818211839212516564491507136573004580241956352331649878025461436736901327646651242422791837369017437739608717701954440134498793813711530136794697093690769069681615759288978601394600387928690824289815981061939394692316725374467762986190349238505708103593502723765485287773763187997588277632815258436752863478051842442065470741689243376308631696819630644536441483853510014329382227286976869510320641148460273433725123948102681007565608756232709837104213445768363232620754382692230291143896396906057620862448062482607735719318057469611738289688870199371117301804537990005217406180789630425216093984521230301359165474006635465433523210771892879405629257799993395447726321475043185238196129504098312082133507324506948922393670156891064486581274192394177086440179192112090547930889795097975627038193606170254076562174459657027886355785501903199411371081366785926570424361105123098441965216790062862305479853641549837421284360700869107591016488776428795769596426707340468830695896088311615382424528269656714136141129150825064437231808209890494254944307080559205222072436884891778804589627669553290974292813782807007768160004705332710697561177066136501307954400350733619177129358206311072143557037680977728400821691194183490365826052935097317002743592451661395143200870173580470117999505219847963881496882634262676424002537329032821393489993752364767431593023753422288023321284113050238248784043899459498139743872412906742322276806213155098412300797003038318064153276323761772169839327094327735911208442009674783208999977638484871493241985094813022050589743576692445417840496220140303877237604084079471864363238115121816265106127923437818513017340210564978296085211456675194974831849946843160886323556333098856914433054974159391523671934545807902583047856435168304220625618392725054260136824108593418147685855986953617852621078683884529190806020236760501586950029879255943660004530380685677647169008504470120802359128271978360462884287770076234502350556418593588741861736824883861435936584640573757260068620812310372962072906032913850708697470856966720669244443607787165032508848001196851769321274301922942764880209324038739878071091640147439453531100979712910739588896147876877407271399372429327787176518076648251816438884794802876951708407866040896204561194524211907360949629087393819121485207706041576213767639386016682303633202977436294353567658820879814556182431190193495481330911859311830140027089771743443103778359628705731457351000584019837407830841237320227692753357189433931750164837512686806482230651976745014773785728596516700933833932719465615476846923840815483565019726499586703287824182628609966448260405493012924607516163343558836123454067538634569523664601664500289705454887979665012525347195400072445818622782863684271575880524677062319553080472592977369561623256691642069816016898048008256265987448611174671696854072783501122475092402081690153261373296587550669620575361708614099611072036998241453999530710914733788789315357231578178415207707269572577085475289154011981288585388421344049120466357120217654449088051763719487287974769680078793294523464322163752858839585438329237391557937819311874610778307312042339909296801060709622207705681327314062507688074009599621393935216808922483615816784290621872555493738771753791761072787547648958305402932928045209241575761634420284443973683962083828846739299109530339680826161223645118387477075902996451948474231030971409167967559391034943149354337346583448187704734576415896050561846136140074709581498008651867058581450044261727212355166118484970935118370761296624952449914093130553333834124147447338867734077463866055301010432185280037421956871895834993348816799344077930047431168839205701738447982657129715172645368639260815472878501875877309415038197421312289666979683991022499336465476041061405938471696257777492939375625880605577020303467558466601292723720652310650207295434147379383866314135769597346799289004181114530664191448422706430447259381124381833994823303162606938514578925922425573659116526724428283463173434830599579807684895880286477361106504060863415381602155227314114945099165478214272027264083235143658205802256963216902760105998363450440563002093624225374811884702726521550919814213343715312375715693455309256015295791213652946171922287732525526797205379046116302975489063545726018442411288956988965946795508807809057121820922100316410577179433289058109045963582225595606239953594748797711604865065231672732312834639052729300612631916646104940287960142764342563439871162611399104235318985780953136032039819268299043406630992548906530621537014691119544542428125026263407549424429344396814056646128163778702309620182527346237735996173944302661556083462696940882603351595213840721079462512694692014311617602057081094643662959716715738425151112646342734984326936898498783828922316125847698083189672514197212956844256399012110183229987380332935390419697414886265748139291653292384969735652878557343082791189657710994061556170419330734780866992135262021201697547216004541369777124049429478416932384127415645568387203406772687869895713245431097310288839374581487838461926513754213826735970381896227092736937214159639724758021749593559123859654948708223356580505184473537559576812435384474883311501402615400104113581653165440199309969935473707739659927385079035850624916071018921516985201875173442098359434834322149875221858873198749454723564063428756602373386342088719565962215785344871884367612658642664017695583161547270699691498009409299429488568044393360442471285546337168223489175830939025618140006981963856656569523800671713568588574029965786600944659613572353743476313344175420850003403607875552409653922421004984152161491108404576389457004320848625113830356332006926037459454756754477398459016249833822511150084798628990113709550351648414218416675759131935834115564090095666956586866763251700013009076090826059387177031042948536240024207425456620067943796980167039649610353865397280210072704182603382392434684689362927711152962374004139178020619987853288773429957943554007449381356038342029203860103763075200516785413439590526749155997492541584738168047784357033952497529715071178945855113928788986194082692513588220348425836025803359780059124300870122257479768820490487307837767850965414912863821958733514448567508970382561275190937259297780428296711765740330831820894952139447450985131036468917866641405524701960426028580547911449862438030545873054794779693785801038675551514008572953579754354335445114421173815673684475239090753984230288827596555908403495338685001371361446653235646517463514586647050806091638120118080514233940647614428979783059196737505983537567490317023093534594170751388099779412949954930949732280785758148709602512851028956558172129673855074190015607982546051716171611629702263755335805482938788418491838525694931474378437911010551423788867949060779722183385365724964486514496907123007358592793207704928899574122890134888301623804317447570560213493438765969886577550874986761073694594210626627049631632919437394333231793125480338845075002050657372067739860447144065825774917429113562253502148283614069239403622721523132866448126377007744868613949468636683252345079440023659911658486081512239837363537009624107743025730165575578561706711121356498125669285482838100303101553296625761969960997848078170552699263353121725048699907799918887381341250542853692068468470708151226278466573811147345286344706230535084115362373682799557014422795671080758828392101674911683959854738236782605921065710271343145208151839502682982380151816070890265327045997228776715644747263246233212776756409769630745049427080849945800058788204774492016719527567512051990331769530207557665556029413342908337478585347285883445910742925339844221197831757942748777023244395018282870320234580040442155448900261002446028758901992808367973610365423551794875788908089012852095624346252219462144334002949540949372720843830828606247411456208237744184921570800592183399082624513199865101126572184325127467289755600778870355048989192396731606476722135475058959464359558681363222049880373665057101424285995025582472184228146036921045293069241655679936385340794570555826492147891153648140384635800802221169205748869621441529768672075028111307575336148017596751397728217265010439877680100993583803922248714347067766248592310028558388329752803161025543627339938152199571574697134541020792596320744285426591457591256182532927842096276811122951722283851970483948250471969811289580376115683112067593884148284976080218790775813191515505221555781500477019747200455076282010639538956274988930340479996402464505440110006818633113294902993895180711296975541287623004769566994371674152736207797508944662755517434848872178836628047790905271920378415486935317530105233948329905912273824962386561970523093773583630351271947774855964882860510852086834560576573440273962013291922692258628592307188205110159944408594942812885674020052967951493736101823001443143915864171459469533265675021789958892363107217655494439501764926802904914889650292413937433750644925059042552851397711842646277531932867619571933555486943978846844971391824154872066307821472887930817031874269186991129160061916545969648522499600959131480950433457047547156189637967102088292033449507217219673925793892439378869993055623623085332542455923343923838527638414757126576589860892096176828811639162910258517835177711091814903157009331760636488978508548968887916288804238459448166015550822006744537310567109393564431143968209038889595415297139741996089563726408791940169111701439922860432840731428267277567061287523256654550756456938012716309038574450872852557167765884833205448312277728126491174792643768865359992453525681884487345327585462225387406826327384427300779112721391983014181337927285606227899306788932292862743619560608108652367685767430688737988101724646529703279371165169078884923870682306429203657393849652168682537913145323043194964550861458885545508503728887595851402830028976600733642969721650680272650872998804393959130101108040463606349721433270478968760998637466197379225819825970868785656396866296125874796415359807750877451866239209962735524895541033346077504779653410048031582702847593036481773702673775770542294221883429069611301679800667068177617257911843660877881277973051103204706803215586228086824165950144777751261680563056552448680942976304486431225192893410580481478408290215410295438751275235953807785141905110543783150637189461636905028849746855468130600540184696166244777498114271826894081358991135363597811456297176179649769790821626596706151107858740309643162948456101684293814636282389733724012804104278982499695872713453029957476649840932462136002247858114362167570492433235703332860845066056450601091275728971335519085595860054585899175163211519598739867470900376390015322551984820284006607999758936182701058121737929010408450184473740806594464911935362214716682591733612601761488537058230384683795793931695176065778263985688618695964435183755687146406272740050189409664030413836981688614018406164967062160044125565011797695715202945163547523834878771952284217455910641538157248656999959920581012954966454709856796077374003650697956077428824574989513208393993728665809296512570565247820627843658765025095003633829590250944294083360320139107542936042674431280878477208023564976846420999793101033423016053061856153031287522292380399189819575689881244763977654464148077082147944511624982465957473081039624913673805762077572312306060864102703071395755309197886871626843300244901431631855160124390321496925204384607570431994269110240348085209156311161517978834038923249062778751655324168435237853392569999820794765871973456892840833435670783127391215327852656041275182563416734791708545961307143503822350978167879369109594900875462362919220906553233159903901091312107887173324283628017770162069188075646510644518797786839174357634186199200554185336764215134523236802605626488706635968841282363935798747414170239577349736653866026717528701251417339096094421106920488423507721361016360786510869392205514482528574548997874519773650610249316150156659420510149539751774135407525723268415606222887659683222078346156694676796583021425610955470383679652236823723975496585479183738794957212546027100480267935427264374905931974129884570165983825467007654405343554008459239831300667955455713275979306008695314638910442603552767193640182355313931147651472030514249074899661153760156632074123611504122872955121936346616131508959994913198250660323017186202503597152021336603714083828168599222169452086990103677508445129025744375360532579583637670826009027219768499287025652540418513426561440205105427502934680351451319377839277469878521993201997614702595347979622775049271230404606013433773091561954937033731922614193052941725581449067892957729108224141820365663145028091538596979071051090888479297970866140840147651704389436966893606301700826219945859654786700367315197676669002516725164953165275349823588017483556173928924412533491667947022482442569599861078900098895577007140189025982638989840955366396201657918535905108422662198964011502812475389298716570527682882859228570216951450925550457049585942846147065272534724050891465512754026443857756852818511059622447752552949703309986163253206631473855318901685085299141476006938359977556546589853898484232641965783556284723335354094380335033936425244658614808156731374700818498696367187890914546652270682059993529934523628818704875220494358611632862641418680455274791988615066509806444782330916062929929905217060883738852969563135951413256408309690946218004920104390960512533028200402727636778462251701978034898715487313047739714408227669812398851225692618511587635721798630170793062810628837721321147031990501960600605644727010336605297355501108990411558516857685954222341754531215162839707543864835478637180517005861067472262570117314386389641253857651712523557543152579623474675504742458129299121485835626859061664071352467766266220986521864504347097994296952249140512448763740923649665945966453487039611612751175115738403495737664986812997770530183542190956676303201572162171021809998939024380644252939410063785687073048650464388763979979979444734440779198207650824866045624152031055455625101898782343728332259678619511684183563860251747354847771858254679294337800061386751120113442974407254420020932160248703525621917378109592377444728770206470358842930750068053404881050950189406770888414937944034449172566929314774563877086846871271584724788839475061976376163719427933260721892693338128064818722685897071843357246714040009631395459176545920544491344765123317675382121449052565327056590476579036134525909593266858758083991278544801342591816181491767374309535059694167542569553582190119828090259810870253388623640763689644542328157513411365537929932475722019824810168179206848527517506536154948187293688127673029875793779843051890523119159063504458560008995872301469249990848230564883986832042317798310335609711036691720341516158796872736339217731959333741695292014872495733338792597226622397736424598281787863337969834713560789245089270777662759329783139748089734814132281909164775416203892773116397042073397213214837467612644173682899111128584436778340675901039237567055828302621491695787122703436331818254237791273750253383446927713232674783982496598936092978338320754161805352392156159383087652866361325328233377403577885896646541969820063566294856484034661794359786774045843498793723017389916361483542946343203301197281771507433353487860613948573934115718727900347374646706433311448804315807877022886100940005731093862659747903928786160681926271814775689331844339562078637190865270647830983656014419664571183548289836453582078538208666568006820456097189669689992464243410864628362093157667923904901545251671118966452407076511741690163311600776168009771935452240313766206782454972285214083958230295708917965620298955663465836426208185982335989205690121843441330213321644461616795837421643825763727225135031320947003815040095781175782865502555653191572723725754028497772928515958972725222613204432039919585487112377595161966153965962942263867744673235359509649619842692706736605233224595835524501300023204677996993953820847429992890086372100171847087546067508471556518949379209652782847336733831100686334156677602179348345319467321170137635848111642139834822471213036694180652361984314818482186657509365757120720611596144395211462054877431431945492189654372835391474085717399658829043279005858840093731594996419598634844457205870889372446515502058583385075970725390060859468577288185736606342083164007728605724558300570687227618603693878971082267391342062236579835110028690905630017394014267841820614764395428378861888886059746572923711232045668440319692470662069877339091345288567399917334109918498089762416774082898171574758504557473511052194716059879389236016981742274862684136986194587319880937256745266999524588820556084674290116660431760641095298266273759290247320413213295751889919749323665581216081914118390198635287798272436822171694817628112464900715057682070984456420950095434312805166236175341594916941697987573150292326384738458506484964164579628475891929730509278293944689517365032406955392304219011925786024291673778104483648339070365599319596985757328103502587093499529756240794871590891494611720792152413094937213017460464520865334469105646581089333513380870952386816694994753713357584471285051156161749453164691803868064901185902300967999117453194463344956676311684742051114277349335557041993338310854171258501489157565026916371945245577573066134348191054814565590134832319563832798897636618666738036163798180366874680239865328871543902640119105599741000751970419741465534018419132659164387541208234127766549392758970438156321467565043061395130312283431734423517788540470593604658936661944890083920012281568882006796878256904868802878441519278887387416095139537294916671406904925068000051689310065874599929667469438467754050864098707911669155586575355750672607620127732775614887602171707657699943588952042587756240239493538789722178445548463988776763752356666797349414473639805276347953048298725967591592747530092462446081391440013762244128152661961056791649682373050423298997687105760131000239975302033460583133993352730375435170402490123960644707221331248694286471470404443443317245112076043655736616238159330165527157954523826217564434969192422863611380093352868834962366124671599936524425442625792644671109467528968575167074381227158232430864008493490803915454094446097850307102039107058919615895348137521696211756754343366041763620408572729425750658159189621380722769255431115260532068373551847953091464890874875791836044612800306586656528468573059317467600788197210383415119249436854134177876381271369724608458583078232232668394643448839294695886584017809337996009640193184112908720501404588528069175332257527209563347466120315874363607447830432209212225983857535264637844372476162812193097265261135389636063859243699161966021779072899958030418384847115256161635578064275338464210216092382034743079608067006796685794543594055940650976671958663237669733937611020276563749535988973039909115343349441630830274779649624735158635164327010449125063141759767419308822405114665045625742193072339568284103307824928558533749394431734831215413081088984941892109409766577348302680147661892676532035931241980857224354427576947109007953640157504705426703672479613586057795057552634580898243624572023740609039142902220342685290954156763208090398061852110760183226132178819111906949216680154766751652139019116988901048676512252263908573138801283829818188013360001202136414574434257108565252808151030237420189975810082454909578715595490041807144696186757605531167149376322190165164045897160355950571913908895107824329553191285514267482474609492403915089514439451518063304821054234381753390295363753615822963434053037776345883375753775655520437097526334001254011032764114723135077645298475288469028683074644170322606235971178200782411844714969006965159926546213452958646464894427498164503412184604355612430278339849168616204071920637193071814488602965673367050286022641389242359002897220035638924605369975215452567862300841149643982446065313122896203027477296402853059372577691302512429491619433294843994829270232188819907562696903091199512314376852835877565516488233752776579223072663901968392902243818669062003092355460666212136210606485888140928402531859162482291788297830597426376705891336100013887538467235097966150696068497849431844421814014574941914539829561748848010895719013453254849915164333367041362509883929439376564233732555956481763481285625921367261939218957774533440894284165721311728455839237413670163886725766436118027945944400602613838136683441535445531807771731833004405361773137023643703120278070763777016315176100721655027988423820358212724386731093980900127327725608340679974121698906270661647984581187398945313171834984045077297877861234923011680212658340615363586763277220410338403134831586796494221998205918137330393720969732872690337232193623373920091103143452141180767713372308947868056757649676365507850550951799550219796170828639077452126399363503589086098389769673267850316356090315529216471214918637117289932247964274229851302815943810626941369780291528944617549699187758286051650105399463467709763290752988634171837831588327965564422842684910123576174403210436645489838989848945491273408693099552479416828291057141526730784548944736387558157145175369011168849775530453973917128235045048526971628069893191402113960551939332664537759941604986119839280540990607952934519850892618285582493472971539542937586538731258140961847931086755170053224437188328141120228854722832336834027377381486238186278997405119363150966194669950846189745660141533236529066072792749205577790401631948987071063151848355526467805344946046484884786882647146714803538889598461938237634687096350537799925472577036691094505184357518785511279806954862375092438202938429206273465323550661268962564366033967247283905255445871336494459874243396698495232733693839783853095427351398778640766049637480902114319273028399051791601336911249675790717531560846679984025061023984315364307204984667598298141995184360398015066410698405988164363183637893136380682835254147353966693353273126401069284613129705592115553102547164786953320424016606088392339911622846578131210842875849603247043680771714093822253191655025375042606411402982413255787218170687488514987068795246146218867494521594416566137806127561238810432736348360784036882394358612842552690144308293540582896035695089946664924839575419423695009879442836303395650655958713541293088994797460308645234602539741862261540442196219279794546819071307884407452758438773175568597279833051244371801741398438829344478978925757814095376698841106848765523865920550369668367454407253945986771557135726688738773827185822497509928746243093062759669994325506125275117118521119160330571483158750929125735374004954750549365114033609239742732757204042908040954002883317081590967288351539272721412700970507926231729439667395226071068365165257845397665253750318910988521684974833597523054884875419951132176165270952237784241382448697197447209577564695054296193125799673883257418238914311375683461326977618751000328427763126301895833901858304044356921127886807552353187051631419222493308710576263215714425034452787949221712791230650244030641751707394349382319603070185668644283687827735881762449463104845634833142740212269299152235336431789331776946916963769001686611037622332124740858066403557466449150536806916202641884069916842028542579799709009803890413857096673160248980842391325085252298756420271517038212935649323833774995276125428821082560504694098047169397799642701851747374616386648125873898545999607792200458635002222703141006777570779780992000880741301640182320014685915070043086434411596884571529912148286481337556477863814231490841153975898241658825899465414186045790340474003939964606794273380161844581530045626788811048478441719053677726972906267778319809592472375044906539358018782204513116021276917567080120493406513762404881403332686226723800689289442647395748775879498551513717942537870585444196288293738693947872342931202261557735989449158688358400787932943016424311242179001628321170259886062315638091448875987645320993103855231796194881216240907598878511260329146298387962983844907925712553181559757873378741092340674995188838126868010903742132849335027394231342428908066755534734395346416164039334473087353979276262888945914423589673150763088681444280641589004413930781715761108872824146866908715916413148203735883143706691562926151841356235127141820225307729461348599162836644181780517444162259105338489813063456908074253195116677954914899873468667458970177780019032414997500219175073686085165530392879643753028495442266559234727519866192590828584451458809529946918487303315958472650601361711675297121358123751666176458755131698400872294131354437314252797992769313339619407009402280901793625876928627839490493015042916217353135255830118239475525635371443039192211444856843065392106726204501972129382633800669766194026378651571573617470867242103741520982271833584371296490958344390224834298862853236052923654416738461673702915282996011305772430636985067878933348460954194424978126368087209081251481641234049938116551721926142629850904911739088658015781527506597922463189865462967575860891619458789595412647974029931273884937046592585545819849745637824823613176452961050562489003386709779412943702765151983076748020045852828245441271200726706912071964825154599704869191910767743433012936999266973446581089183976275727672493420284907272052540604648651234510961077567056715469387996531796358929863422527320160228793702989356560223103777937833264490874307557451868288060889108151147924113176168359179921575101361301024983016284337756640841260374084055370542739968473147955941052949436511891574393350888171256241061338754690866129763942305660621200115523133895811356465174377436821713441110704914690809127374791873725297779563107641313544137979263539961829119599145226320720533296000206291178287813770611696730316278416899142619477874231679055615677274734877158920984540969704867533895170236637729350987474003531626625492417195227419381377222256274783239994510554034969461350682025714483711965799103432193020528144744943515488606462710114539075413969814722411834857514004265072733681142932451974565811437344627833531230469653913528217009255580330272444581913816447144964554466031295668178628581350307334726470497012867828726169205512624126890501363751045186456678724832134571328256972501063070635830622365472929954321794233449747950575452205146575865225046072415434919278486589809110331900407504160894436613737257504483298266894204495437239417417952896066683155805104793979295758827431971184786214755251407181004974514955681340663847909159897762825546069319595323368217710089726257372023552024497134826611142875804140836423864033122604001551622049335184629522211628552942159887022258081581425385487220897428361248654256752891388648330921731544536234132074026654982644814620824428823574810926129562454366841766357290653755338019583443136195494998876557744808572812704674239550362813027609416725984037022782939154374917470866250609144945208249462086526050377809446532368969101784991569685197046757447727185085306576730960469839793939050061410777712472247775425418122743780772649658337519713554933746125080347491052308993732395947249343255546964398101074177564558449756873703130561746442497783371906778065139479183913739596501444728477518865276870307968811811234736200781753203440310506589429010961735497069109113739376861003345845042571575087643254751281202566184480747621233725751395773235559415954404102436863730685457750491193706465975170687986540041596270815349276922578451768931824897722916091542679230941862534246100079696310413119396267425826932426584248537970524680732194160488195237214970322345279325701206693548775301278572631828969944381174932114732299435530440041094159633209508383464183494521925174074957071664294887808166015517814248938628935022723065699050446481835625090800952517648873033920038960430356781001528684903814542848604114404666683476366920715228556056878811665936717684329274292209228153309112176339288715409242594699452871893221782689730984400065329704753797680446367434387723399263489487555780618002125530342027888275328160280443538877836323219168745420282284457885882629234872792441159938676813951982704506704386895779664337084338553986976606792225640090843305506329172564947786681920908112210155405455439528929278615318513804532803610107023990849640165757985834494379185269607160185885098593533018508881986034037061892076235147740863177157442441045150595845319411176480374084945374824292116058069459822311468608325904031080757964457031326178075458422723362456708966760077302737868788818885474105347522582195855819526864054901021840107270459484485672722339116166065357051912973130121324163991014431793787949344594746408686951530038045470345530755896848625319214100769968482747506407808580429951212387506874007068104108455538305066952419849398449526357304208724124540514773375997290485577707489603295072453009926027881612213699061138976465620911182668920323143738681957051395144769568798111042894252352304230754080195924748329721564859365247321816841564932602529212200350469982525306985285699966372848719242358665913444733150967851099770060331336481436167974633918335475714174047662921043003167164792717915652453681950107381849535232052337193017014202609959481268140912985270820838601183919802674289414551724736199068858385453573086860024297151880505240621775299168404038342738379499189224898591267349330098307383590742188009300478059022367304880402931630031483972015238639111147291174106710291411666175462909878326624506715222014328371621749097018325995440729024946566712617931276408349177776351915501550862112195432090076201237873592203243255385539758855521945904569240037507924388522782176647515086630222532555362116037276901933118443723719184404503362474125642750980957093289901071917244342552956062070908805555107801461279192973361348521764500057708550518082116160915926564627402590366401680870052674680762262168476290413367603399123875574120849126288382917385751403464410770707986050274137682767638683280286274917982111322406616798852257001695031140323574136166820018936452145920359333464749769428851612261885739744045975548718627506640372670955748212342859849552756308339251152113725995532883098319859342774678158853658165760063649812080089747036512006933260430358056954603831660522426351245933648729643389727393322661350591697665203150446456102355795689700746435536045097471392887838319201849593288453778288480902887304028270923142281602838495774852862928460935706948861997706735885864666171920989192641950724794866004315233673958135959734665618387734616578267525951905409060111332025182010923077517657492992502535155505854945880609065865671792805350947083068904583538335763503587967470008687396422026733357953420783923645968908411678796666829969373638637023615164596930487017866005959057148608549725757561066044335523175832074359608977356452926515050888236798413194140592387023175830193065678637079507426948572564663053970618181191179516292039618819178922298533258722316182391140832201750222543400258719714230375290593190838692341216922325209860046718280158000462467711098617881982869060526680916726437027219214938145459990960607831151910358822939735120011731811807686226010240948473696395288788892379579098941387684800661707058228501656160175724130115265680129476598560861394806966371675335839487974040686480903951063631720298128344592295482079030771212320588968869428408884610471835061071967524035380202213816596676061388582986989048925759336434969300597747592388813172790918045275488151649392275699113606675872652726428412361783757044981005422999482409915882417468588890103444115907661069108290459933371677496754413941409545820306146885210712490131952315384303029875524068591404849812298615905637438514464143562576849272517634901999913433375029032580002343989222063620550545547060461649089035477364912354057059013470899510343206902459327091234933634039899198674557311144182472732036443981026451956064889364246963007297281245103242494795937495465318489389974436521733854338295233139272151447882831186226473539641507862666183851266017939027317815763131799826874763944709620288335037448235444942386736040249738700088524330497602877622215420529008091154893041508824380693345940515034560922099025086356896581445801257388636416962806456854622607841786364232250356652864248775055246265380089776424875038385340605939124567583569745305669249523522889103883117973483699787603466977771447127832934057403266916229361321851020888545596859108101407313568411751055842962465642609278734535640660416337041891077668506511636532787350469729119626349171327001658987083685707206899642072170924242411087127625319276245912630938718656063632673048973574687694210847897351364968707967416100865450377358331415982900708604325871386850603065835739545069968649242356710037294473527566869989082689379651812531382515002909484057284893017059621265631873188613300467411590631037645940220243925017822387069277959293844672031763822575717419037792323876233154534099948690131614002715002032097442577256353230721193866880998856648090139339680539588843072290078985930481419116895416051645414980396734769661986627169744338906187313571415309077054013963546272861945600088887404470551610070293490900614710964747074451773577849479593657121828143092095791741971958874335407287332760277588061072745626300575835576371033658367735748853133818167399026490644018474180030853367856694677266395492537967292727134188588964274540222824604217698241231831575057459985699553377044188246047640952771386352868434195316027559789641396654282693849175211796341220299733416071060799620350845812357984943265979558775043187226844515928708778161943390713536000838893669803843993457789567137909227094660576969241544843407807247455899942701629806117848381379209012022717655674746046657316579671229388259704293520950351589920530843735649665024549192238291855147159859648431579878024665453524884879692717745623740274696701074544301822501081308805638738977855706400914948602959077053068868037328103284843853870429032886795819348448509004842861530407595641248373983912809170618614942439656792447009777013833737155001672830895412054804020291988429909782957820286053583293281088601452237733515999747572577142178311142865363260210961321410025632114560657741969091911112635974060838091959920195986766069913463171089407257004580485793607765830017860801615179671145536541911802645524999957158399202581535364570149355401888116413142084740733551379164026198327800223194009314710961697059476313601272151270609820068154762028460806690145257099738181446362655193801875710765165089696662384358034282758326362176562547058696974242269263600212288954539350804928718538754425351927154812937049370431466557662071091616949146859340440251672034550196041820185967472899425974327539000909728374536403263496614074238607038693902959297236076283841916194766663848557001455571172363932301016946724568097777118649397812142085543808727730536058951934734754401770600158954628172940767170593382953620895988586971706528020399002555220143656196923238957300880874793935584392128605656709484287298667483594310698519430551484238256336372256082658605026577116185636235276111726465121555134364532325265006429390666482381088901494621943360184813242524331717417714695022123533203524871607971724828974590582073247745046426258278152372264975875135695254504037192370382651923042760356347058014547172920205570929875676521372308579113379544168363550394613198992301194467127795329890709925538551694128736794403400570575315961048833192570103696421632920591116248996374352066680776120422172995797265790825118211357417947146908925746792717082131556288740862393143713029614765791391772679364101130649198557292627213500387963680371056711865195883765923789014354193602983265884515568671583858842003726831330366390399167963205616043222724984271844853823845971709855957464631272205056875294039119385895697410732952051079420602724775558446820301322567354963631196860133137869006874441711712214615443318439061568022927340808032862824972835956743298959555808658383901355901215170383459652127744347361406487193023424131014418732406848430740653104422515566965813329783156612873464916829993725809758512861271070174594853859404449489711600884092431834245699271071124193154171976171849027133321619395555106192382975956655387677724559747145147180539522837567181624266875566820406307819924825149275052222425002397959228162589463792687355397977020204633304122461606116353833725532113752462687489430293648256674099174696230067555376563213944523710869917146651009083488708478714709599716522972068866562386387952647614365310741241891011680654059912083723027635641649793732321144015614286371465219970131647836716805425919217079104299852601447445373932106165333790976125278989462715748140084218398028635775775305563876927876313395445153101871848406445041873094290643307468980689888129329046021491026564119747517810786792430975022596861013848139011332948545276449822599415312321501954645203158465669535280715270180400318347685072487863058299988727325265108069649923240982499099926081185490265438260383017536844135494602203009921104425462317133965202519225484121102260940995187529815039121355891516056317773840156287093319184413607062094042126479591833366418958631803599405775855612119143724997588187741594017401529489247044357662868823729580090022503799947460125944659910656797778554189918874253197604268352607049828756063584736488611837449505554986951132283455399662587963089613124756516460472813234918843164274212279761340171117601101205281833448470604704766302707926517437131197340054519410111994891725900292116660693524785869331062304995723723116825973628135884185617052963144311248575775126187005995913722875722861508697897785326952527440019934801704261418254482422961524100997748580075463346344703506723645984201060951789866264315596363006818702408089096259761345529800308281092419652620018199258025394903777842907238565106847549733661513285820040844163560446090156804508896766212722312437315517417641602577733315536895873189832039155069682286196449656317195723678549897969034401762179822600354357856882381534933402863212595953014023306167796364737991686298576907373346120420743430747095796614891097201920882881863238537739497111468730735192541278966458958584901075182452701139419781927536921068405259256461577248092052990644683346450419140000144588779285135445013168075536294089523138143733513934157243688497728876944833158542316078537771499409611333257241428757678128160059304534922904702935108959341403533177813299423584123332941209429881764938743955512369888944151613636166380673659216346340958635565282069767408713125135766301067338847263908409856843374313781824813713420601054444842648011699625809392450090210847164959838682102232341731701938315181601349741820250010542165880373857877296697591799990763126996978984427144104961264600527677072016072745174693783717917026167228221982957905573203401552323610384553546893106572922340458824747861320828844611498822391791712517861007033433839621738615713734471813185805959453702410634816838272837179544557854722465327215818752433458716727495448554359030262290062105216431885172971741013944456133902938012676850938204421535924745073763249721220053741431475882804704177006666600305227449386656365392045389282372530409011006323373735011196466704822275370636867255366139741571807790207528220872304305432547651442009000419735377482511802338935500681393746650467974333464791599353138008238137216210607225607297908030235862453107400818309161873654362351732426568624038380376615431731283037848134771458354648767867161879218395718034724360240758330276950620330556490328866639555087553658719044211041335669525428611962302248635592517571594648962180934494910633858045898521888028497131519065107105731894231228079894062505355792839322307798954860112562059953855362639940743148257091082571456469853045312667003843738468258621882820512315129503639768030949026390923385837147396340627005559562762224550088303972325240174331207874760810431620730079428009302070508118880968630018100121400572123020312123373973426293459658579781458903239044276100915827694794328430519441480538765964525415686653484338820467335176553801970030026133035646267415890363062789866322670703557804476624308805353060885717684275473843299493520650535953773326785039106881715334291960705796867637969432198060313383491237904837556663045822018464900460479145900742138986498226073852871042029436461821082248069314624759208657870425709353818079625761263141341782045293673926571279754118965682348199047569504733253069876207558862624011956810846997280180705286308939396711190455403432121469074083398430812354631574493992927976647353496208061848454419705842321458651610295300854745809669821170158070780281701997104349028255863534880356118953838402671575873612884142574310014900271350257147552782098148297226425836232311691313431592287061400312081925589913718879854563451698428029645417069814692029087018217559054990471397411946300477905715909349219329065331805043354428652497575917001359665410090462642270995023709882372631434928746290372542455384210061832612812647179257459758377382668416658937563538867387879233475904475047807857834492331031588465793153657942266844107485406013616298411611497492385222119765501826678874939227308325308539286431903460958200472756166877615269523833859231240707701392364634997038075913311253431890813148886496456445586768957268962458571232966529976801097883177123329383520334621092636426713549825198709024427898954657291608586699057944056009662045402502633915370099292222845012171613538301862597635072125129225013704752814398514333109946673602968619675559872775251259972306803260923270297866025634218907815865316250011093441577606550541695746126062258014037477134130023309263841944746238651967085996959105141620537392232281429554046375352120784579068140281494479793814354817334054933760000697004015020020313503181674174234597954688388822147935057759693573696066739690867291542961901537179167464959265292926431877737595360526185847108911770618390850730357033861814334427469004664018746103138989172330023000809882308134596204563614560502416117062942469178770079188308750867142966973040571533310157841682266530119612414513618644565529924705123825959167606837545206551092027436848446157537643546765489637046844639242236233688807198552226241271895771420199319486315806369426134265487074495434381241020262568428538446515698130812283280430303649151169870799648475283621889704431149850723174716637122183378800247755567627599426184160388382250301640837461807652714298908853126449575143259046526136865268906286163533073773530153605997078296013162695250054071677388906070457553927628911441536855383272657764895272386771369572333143512200027239374146119060045594348018879798145634420464115157678224891801927146236578012173485857634279597619666677459378775581424962825060305730296469669316921859792096215331099642539339625568133292947538932377632112451896618395309604819434402717509911382638007798701152430665531597274244354563658089107762561737068754207847299586404100793538721998731677826012071584501316643487680857109775756484233681150836863398451600719135439580566613480245625447816313254691553738518616778480483345438705791475439844120655777994902968116037130295534904344811142992307449337589421800743486206601747278300447171394709108180897935062881990975536103705434721778800855943199575514104567671061136260975589071131445397539905889476836535111301464141102040546996626799453038334858617059596873911418063993576246510629372419667859543399557811481647954196540800071639587633046203213696935482207407897584543720314027588871682091459135499571921456615372983955064375517790376869521027528877374328847891972883785603098981191824495501122609785779426125236678883033191544546191907035299980353692704343646826479779110387782701999339173951112280393404176602125148656509230022058560207012830215030666434408918947295597373953621854798873438448903355594237190231525606051143495216342290178238774546946872324411198244611707838587302202685833322318545929449294005820350178166316911795947219239199828083698380463970249919346282906908770025119112025179058993344854829698986624763588340323595710356706843358351109267902991484666023957626871948438131497622738067587872766090212593568319045623687842669496809794154748487834678278999352034951566184113177002949185538721146668233858166329773574785547827558932364467072371652565158726395090927099516076749915767103996742051004956950257090902091932314027016174726952376860646694921282883567251221937334891020835121055644455393829461313225912045489455407680064656861082529159896150621242135267009427812487833974697492060976818947347833042012663515800300263427600597591025283952805839215293851698902753409738148837898966979791736744966196534693092951906631513257174843663170182212558068606325277590459403573587708522834431441994473689481847627661480848288786344233724110608348662493016045004363598033580865331790062190239328138258974183213913647808312173066979477626357782414183224306104159671507107577054570983907362952270062782755243720083345468679477659833408054666818242396241576877710861558884153643501937421719728867522136479562325722260406616878854637421593708796041865388137447643945665514786692153316116441503954135552392039587023525326768226171608995299882157675127407053259139130815625825218605400199827098797871939179167132811771651041693868261568822706974519666251630090605344004752294435609855708913163114044013526055814223865307748775906498495236528972343091383588834235236974317109913917586155895985393707152382973854621204496955710096337525703691312434119291781897382168502697242150484432610141103288924066604342812109835134502331345251388395270349470245008586667705045940096463918368405972391875505671103374122775195718305250147760533094779415112188315689343994072988107443698422195270238097319351812174703576553114862567554350689267204423700387384282520071128371549685820403377936313030867094927047363063087312053096761341167171165061743258854953176360216658842732733705281211253171684841281787743952546163614453368613563372120850970013215748898822114486941110770818720627790327175020944907029990484739749249118101787371420798424639290873761099994779608121095220921345541970737921340562760178176826637262858084027859493370833256739312035405030592001394452375134110344598768863056564872196627906985060394209745165717377136758949744413689475031841695933495090224937175167599189704014316465306544427455041202157015050374124083783751721861844101353566349630089977382565555798150239011184693173479804880247049153542377545669845769610156214940723946576778835909545893034368228919855893616051607910054477833745090760812803515342520634945750251163720601053738198836517917083530939389158454355489298372139837322691421363258064879847427083213589501216086155190251592881499232274201361447277025168516065730237793808191353578169972883360575282566397537659451619048727306896438121990893514781856950533116661386144132447168897958429951039273311465793589159953891564108020757059286180500364887730044395163516830933007938232628669134565591222930946787494556586169831517549393011940894461254899626404484110562183071719903805677058779705026104940495654030192328273323669233412895217306417773764216881569675349362849360119513305351680685553728014112376296471579123352873378182014640195708079536531203324078097904764843062134464547075159548500896786566047513005946453667499427302939297524608188050705754077824882881781174405419967224148748839950388456522112166298445700349990284754501874687063111420610995886177389884778883083730171852876944574041114776464742011285313539666737364633612128594077075120229037185322702501889156182286928980130222212809425654101880092615500646229611319746528740185243989606680464097084295709283900202169611540971001361051347134068986421738880653367531379437311247759846532602411078409950253549456581424530771455382237484842797352634011751415847455189546455801783992973063414321260395060233061109603720999678205796167372783322508078840234740004531285720217327866002823301435258838691712592568959776031573921396584266765317186067395935059710426096965699281646343151604356232453563496592604688659789755960159267530283608360820718833148523278349946845613702190911240776626606122201073958420706606057204299089783909220655546722073885648053500102100900137252521119526186208695075340938568548665869378094468923984939342364113499177601119213365526175652021471864763264803802545805613118330216836149624632399269526548669747123666512246651028859623409680371675699811958351112221032592397634850539363605418601344837115899602359946138970535176524288703197747256096482280216248929701411856230514001544556390264298212214139945663260950084141627303767520527066103770052050695358544852948542080502026893420339843084555417168109217670154852688532216811722327506446262304598144849575856946195784503970205789868371004995590150341799992362711697470791599835981884500084087860957483996112051276998947035068573269223398850386667455205709525658554242903154319015242079778226840403848486595316270497744509073936200883304960140562205024803341401131614786543510541036112498838305223770214317851543185634617814348960251111918805486773199603836474186919055201413436071344405676917339113085742159412320795019641687571020463746085143463508950771467501875379976108825435096195916117687895202736860343213196569662298371199514022721932498108977319652281856167264216122721941321288283546993215102297327348843433747722623235680838320081522676155585272068077762667774253125059454877618516684510979931612473180458138964235132428770855012089916490652973560009220551676092499246508985114394428096206827070617135770800482009376051156255774977022739068109980441165964662476211745676829219336385787376643791925170724358570632524051908662165085728512149534069526866889695614376607886385711919929418878879151380153278436945842650207488314023743994692351475560941378969790168550515158964355785692128663747520536363636373708306506593933131863645355751311103229017323485971425262345380946173521291312233610955467356475457708163490368057222722926138298739981724642084725573317062159609108837886525416788909501503372848157189202621470420809731895983249761333976181543729942570600548272283403676688695995276936630760507107421137306437559248863898748423867115922042232478707528944534216163404599411000978659539691655524789345472911521814471623315335960707773578980090535095892907779076403400518570253790993419722967254181918247519203122581607771737072189144174753388222347147138294399432747518632215837084364357034967535715354586611786512316939802621937532903411759848682472641160315348357569274013351034510505871992148122744152932495158302664724287697081536988390217297861448830735102479822807407458204340588659340160869591712372456302587863345151387440377778036671842050452937694651015591445551853775756827359880911377431099130693505958666459617649681930420351189283299325249624016091504965188981844858192141721280069687870718097225195822735982555437081289775676376832104825641935618245250472305639603006716218656871001636371798274001412782421446905081545795961180003582053321167495844029482952838858261753450879605672252703453814803738694882165520360276257490131401802043017058799337109889908314938541343900815233575868526596217505653398389699853726042210987151116406979028273354756365527717195111089363408971735237462584708530447869364408405304524903672111667139649491996400522462210286776898053740198440895931698835590785655212300832064673591214642836659019705809434913586073306256519466594946984947702011321852901005227883501697133369877091128621501359764605411266777222776915548197721748310131793180826976319546448078566604140804757085823188530913733524058222399981672202250479864926485325203024478620573677630545043792404674283302355989231779077982786092113139668544414049427659316799548553301316991387404590305105821685544044370949276922010852196001356419642399787557816026217880164866662136227630042546425531557185171740388558498116585099810464403675089052902664882317153136762308709031421951568253965054939095548930627247381690747322035570127863478547956141734727216932439639238808729951362860628657353624967235204811463092672341420333350439073740794156348868019864251776996910632316781152603233716145920669653184646932763588916929013203506064358069503275124506503424723249603357790320994809733189206229061255235016051200841374688786546592074643510682233995404134744589078026130471539056045559150781290416982039083214457414058894604411624102930167239236750382248155902951636062032356110457936430701165095470246867208275257946155866297490462275147204238586731356695920637576735685047223641019487274055559343468205767248558236090349198343486813965155604462653749761851560803974051523779705549585476870482481534692956695475986603929071244499647024555072552153287486390076433156321990556854407437703740682680105320149946789383608900926177731406278242364420123349550632924310368622868380671192755282940694247241078044499718369175013303404807224630315411768423743306215520332973126716904172438815831034959158698529304228782123414416330582466272725299865472139879718224818583811546773335200341618084693380485740353153955554926785402432765655793008082028606620053838934909703401719293125920018061249733977494416206426213209579756999238970707910599712107771980647085213972137296590560538171779950927100511204520584326383189438234992112987945733342186197457852064603628156121006869985055940171787703079945445482498587628298623279085870817106058846767473128014675947001584651412798434157173373726363611186270260426750621616597877731375150659253735305636696969064631000943998858565894880374961299831363964449338033141261711463729958927093082690077440224636430751088510845764123110550809436065238755126116467609392080024534610484247415037845601286211294575354793131453531630956523334856581246939617119709817294017891331803381848196715421874203054689457296604753209397860416471759301127496117923050537793774576588983420061504177635025534261280208966902123272208332408239296760707316568797193323448873418213180353370949779153683743255049703326936002585762239491674343741292075545447674230252053670701197100898954668525295726440224161856560167215913445266390397598162303701396176927675471155909881533786247489130774461417117659941046444167644203696735077485092608639644811670468633569621895471366424354151966738459781777763142439446613798523079448259105070414389658921173407988519054154148104911613202047506539213108090972597446394821669665233063871317023814121385106776225485492684185283272691436666150456749603445853590439511527105213178074407389797066024672455807989784113454388546819939324358550665591203067021498359192493030575994595497907885508677891456080716668987958464817417866878990332021578097029773376286288320778144627808786671861549595442066472880488482561177165019978602545982520082479748031514814677533672863821248691917611867863051806590115862112769153060288622874726753113038031956639322122389166245241999854466928539915741467463514296893377773939125298226701873825694804864053851420411795139308609548191988366120410295003814448583212057418699026262834089640301355821839884142315769680743902863850451710748464047489381458878110412226809875955047373732124148823949198037170644179943421229864843705339289109164883350417989532593578875559287941374100000776028513780044857508302299494533667061592252360819965843101005505935532948830485865307572841804345338311391257189318118880547308610041926975132282875775672000948669497206715178265427023135848961660553727508178063946594067617009614583615706707456692207882816307749759128201333233480607734467309217133902663602475861961831992539720241672323723412293086079844099446490368085037149646893656322235854421883415559776506019526728280947762912464369715163877935512884297357065687331764682050396467726228970839528936036005025354508594759043009888194432441577722529918509438567949022241896742398988348610565912348780403923899637404389508003376383146608250114788452791303387015133082754134780339711633817602400135302939403072826087188194589757447166295327228075820909306127410254663536988508252334148690942641344820666574481382632631289477524719315623868536541879113084300673775754162626213032858434679949250077805448325921550646554317795376908013775663738380136640431166677261337813484166475462052562443339497279103724219125391096505325990852910736841086329655522870762016173078803991667481096328616107007537893356961716137047446224273604285208247204128516561393172222863038932975098478203102739492701312047593116038571608560616037854732688942034801650537780339864693494232998636234283277546049190648154686635280173888849695768904048700731754061544754743506385347649670384787848504626344930810532765678179843845096210600427228431980510421857417137317891855195788747660373413591377031691361309434871226194140160070029524501990489032533228882949910392061567136883374437140790099716446570589674725443007750013482134014651683714885626436045522960229981927763242359186770005430846178625439930226823332489383979184378526995913035517492244714670367892055687960273133690798739452263700163070717484127378282827912221370053326225346666875046407024267553019853639681011049267215036554023722687193586846871869450032400802853611342750618064021549300875825508578532998680435587832396419058683316183640857728634591487045043198537906538737995667013176978734660232567691473406757368265193904817620824198316911330088684331766391435200404782348929492685313017996923217801120624122581889733635405003503466035008285078690805157464959250336402548282174035054851941724902337316840149430028494650105019541515975698379173739809353285706621219165751962280155390068789559889822040459939639252449098473661213941584870723216142992333904321661405336438442946533593890790287158821194687536818583094669858288963862225344080834100389470702054598033933844657687452707453249086217156915262342249907770526008515951344185800864956887513091138555142879599685195774686761518500091232569746792821829887733607745579888249758051756282923145376287932266253492358602991944182528924925705134117310597182468317399146024669965981672470360263355139079595959222286654929753359754639895508646145281887008149754054360618105322441575212278290074334462282352223064515578008799226459932086484204156829118223919329833007656465908946283767781300002230220794870570244493807987893866297624750051965070134778355119811617075472801830698723365604607151341057357912325457406599406630205995020172441880258051192855533821859817977061426858740669937630508565505936973543394534955951291908542077920161457054107156075532421173341786426624463316169418569144916334645679487103939228803932660272393971208338382835748436701972553099548425017156739813993259420188389193881817555433550880566927982269629845228418207427930854052968775041570374054169183098861372238311090083652505756583856140235764271960196367177497363690041508315957232979700350846486602577771574626337130791964187057555044988300955101518869082618218914191524447887611460099584754316085628793945279856095955459001680993083643294007042729789730154482792358965619908530752463446133367973502021554826547969326302850572420229325298910231943676650323856761639715543960583209744696063386654858274000409379681910218413774636238653959795308045182788170194622464593727425615746044535757426653544663348464217487931141106893221546398938596303856973367287215531111637011375454453570685781110627509008216779428928339775623913592654021906576842328093887866579065963743322616933363538655596395337506429637180465295606632362413715801537774117767143033554507144758265920327436831913168167667696790161668140208303183594256326949242390067176435771561942461111517608695401863108054953660138091710401328904655250605486411159592266367110671551676688694397914654738702117121908818709402138602630628811608360252655835495703134790112153861900753529960378386781051993192733221777134747610778107108434521256695799563828246491513086674981729407825013048597308667885913367255709412923863533965516840505547400316966988157330443285669332087610666806528288086871970533403131518188746439194529436094473370953280805825121144120670826521388493774648255279259319095165617663435027193959821470556183426010013054559498637357251772465889452552668913251178426630284022941953361189612100374225679463227462727351346696482657136688283794816631819464543184432408393830011431323643599223882523240925897972478584686679663906892553315910626057861934120319945399629259913838386042112026859589627351538931429798206203773646700383957057577620967499643368153941034508471154862099636976656779262961838795427561719344707229847483289223552739063401035946313990370950392081714192116047670744206359490309834538980431725948662767887981842124094632027697449211494596531645647725672699778933638404483569762390841982769283016999966843121737142699150152254156029957348082553961878120210467702352538198487709503469343709081846661548747177006341752374324294562478411358736471189381019234118959924060334625815642039973909125162049867915775272333398059199751087591144330928069408029394418670598506991179767845667757696853815073994803813937806883627531591016178443113328558510791399212604485376749067453936827148157983171015293159068924172422664193470708925422442941035372784049643397903424404112515125517902439951892352190378000356370731288917850394829987965039684322228941168230865944476301998092002033261253431891073115942841989838875538480018748860652099024400289846267756551725665921008943595175295361015989478967747093843428116943967395728026409808582683951766824520718172336394726256459295119824890093447125966110982260390870899463142213937041664329187473630156015962621648059167440679133535776285825128733380971747078375380008963639411151985812815979665864272274988302994971930391405934415954590985157581167667085938678823115406533180387079461583155083343974264604691629837403994997657577794918901580007733937412901377704650851183243276249837009069321951519523514990973483156909084058065620508304216857848260380192534373229741724560232757922985743606148200777067647316417725929366040584571859733782084758862156608860211196384615018059278087688016123991086238357838987247175333297844145823223477628131314269216615454828509454382968680232811092723492956064889563916390680122215673920418631522650192814490156424256718433061576463848399885594654386311798861080758939030682760416863763843488750143159041736529521640286157811163338304492096488842432589528887035681456446620407292790574335544203775314334440942372993732519344675571873958867748143037512314329995638379014319233359705501803412696626370579399568524916663202102841243652526691618296585784553280517174710552160778824803726670767610080959754673237967187813822893321367855871776608527381384308967779149691944982309979004025304551609364130012914465155584507338574757476312188783816404944036714957437218745366963614796281531556510653087928305252670010951347364102498264667370572369946524350912934855536915793272266520077086711896560353273804859260726095955333356772596731167099803274416887476999718654492109769032375634945893091796641690858651672137630774392747829614564610564424304873842559717241256099371943485886670067328964326051279298234425339115738819969059191227295604181408625920241731640205853390793370159713817005238372507298966393429806361896107153059176829843387545774866375171465327535226081414391779356465419932157569448413855993843435737568078711558832529735899799701186284847904046868135990593215130448773964960581349056682830425412851071540094765514881739295609285103091962956483674367571272074530204699294090169040393299523808785011878728210148676452903844698663898270708069652388194912301113208530432266544355150833363424384081771491016035744443018041085503670327825204700099225296040718503930221897058792098060029217902393666455579146655542775533813915654811579690912577315895245150256147106158841909180087506053903006828713858522257818663022614713680107810101166283774467356492046666112251487101514366359123172692663172875122500329746921563367419072114592390277581318515155869507166185834177762481281777379710764881496981658296678216697582038847261039901158228912716128128202838867650691480761921354989384574804227783669779832424282970404134400464184183429815969799260632969152427796981451398916054510645247098269337538919672228555497244353320792073196825221042065215303597396434666583728013612082244910541835533785169640534867050292835995835262033867133105264523973658834587472730283912213999232432014004304323951836287067510570578450329900663503936678391468176273224306775317535095613776637677740553768425328955778979325374223935253933570450455442946862955183112684264791787661818757023087621433690463697387184243342276430115407764458847671558197307486358311224301664816457214038008908825509254978930780173787382334308117596400822865925638993953464219685599066311349902604319083599443977315813741074797913680898470903414465817776816062534505327655000729656821073574002450442153317429932645373389513943007028498481788096813346332279087030323720052288470621794544291431551575759640974944457592957696566389392686548888967974452105393539095218116878257118796770991211863512095580762424127172125153265652936818973592783437446595485025428275868687625027323555448937463488395819285293941367471767730540970891637138364220036246114963500912242744670508240628777751721847963709382258817433794062702505086948243965042277239014409354509347830282017528126585418958934956703220363084357447731693168607775941822461479817638486027955594708105207095529028898443817547234331130497466724369252831617998030290596728706883013354445754192850637098275677811137971599460170889066552471605081494323508154748331368190949169889527436522839442053637958983365567782927005768520094535762836656670452918612671218545538252830547800119143808570605919064216583927652123316374794534424326393018536205301931046570737223445439445938451680166060028787061279999385292079833370023420062840339912154919610813321397752957169778087284611319179120182966301141973259423517916580900184140236495147622613460159855143778879384535421038868984316194858074196153361533186035860158808042596158179429297683128948897909473676125678770339264088078746856132552248094555886544805780682550953855260749789795638999927176923096338447888949857805984090304146073094097947914798318206092468971857099662074708557564408024093742443732755720814968073888253582127607379393269091697356805834094464276754925083265007918158132230951744549735024634258431142769180203446639222423182051950200291859460971308268877066805948812643437748570246927308662886260711234199913806858311594356990359886400727169101853737390933618177733565974931731533127599992645251713824585713516597403125646792929810279930397317170765673964868458666789512184002142231104401667154059961384461630680402250851456381717656336891467365886111009141539302405390406343070774523776918975363664371002681858799779757893682989119033430776064238477687071120566360441228105524635425969990173142347949712389223562822247756982406143073528284599922400234013326671582294394870637107118917620913809804162667844146984695916426542349671219175455678941963732884671215745324258249382007741520316304945401147420702994241824039770752333923643957473560285194126645415170652617471609809859871622471388340325330465629408444695104977727466933795076055174963507676073050445452119870146394765151280647118260038559052804878828665518818805156570968245343787396081415488050421936046967173343602879240729988821169090602002307757092916299827638776374925017185274730223057192956745833267260149405816145023046241730374642604861348690656778319900406652612048481422841902751618597624237971530247613570914143509660893940190348195974455412494182110556488270401252556956052255568650470691164834927247842548292248175496379089578255291635316700336345922328416782013492072597705635225140141507155995960993551242164575793042390288764289006532364566951339906231281045289743554091970128043778108826385237549558058950928551699714249530048724555981395651403190543973993305026044773888482682997303948797547066134609877775115041694082041829018116759615290954012614544561888088258808536019839666879483819348973503367925578910942848959237918982267222369565577246901879296921222965095421153148206113089938307111945562972372057267211561816205466870340531934720796391040396164504787105462697928661034898950669532314825326141331508770975801475990571366102895569645786649326761922284601348719402158530771405547743215365890119233619905139570567194407235240438852938918198669943870172457414594624579629565738813215371975995570982259737377562667430418300066488411091066609331910628377901133564143082408091239892414573167644628985538039084696568526178926031971844030179447463014707059554539260213099666776502754536634762327783283892032049010900570953741339596185810570686090375479362118534136159913676938181342898015407456321494241659623026994194696457817064692969158630099829755100115173378029797526504793450360628052729188510112465867764291267598926623562101406562700890159290850535067890927146859662819904852375602596846059274811832230129256943882326960651531768638312874967664240352299784593934086404958799067865867560715358230115459905797178578334149610262076201689330023734391299027007456531543074644711618375987813783236521831695478999765670195993130203731436133532432916536230061112775824068565801931996705604263856120900640289917116589172970244181479825886446118988523715179992598456780499417514448699070887548088627810039953503453986537187993905561898244648004905211216764071450774013835800644500909320426060724969804955709490617721414508505672182465289158131513172360792662338067153029177502695349439904711905460572636636600693868023976046108525168682871926494284778942592928957302979871682506880655278098297193425518517010594268492608153983149514734601482066296387517984839808183072347781184728713247744083023330412949704603581112951122939957894086654515317057458350704313017193121560951270704788779184061128732655294103609771298809728869230194128354961961402195748862921956287927087773696329338861633487263999170465033254834571145052558335377332991694764502861435755665727264467425043445584966781803931638358548812432993370702836619749126296463307875758310665791060738705764036735957563147528386638031985515784631624896883809935784154598988053005125635520624678818042159895260949118714493787796779743339634853034996260303584150678332086973883545039075335362270813684360838897961375263018607507313259765261031792097362161492014332888968510626574318505002872007841137644702745857381759374127194841167431032332696729307988749035648366586995554370619719757203807086611791721744289634318568776518054916021013904813672826248784714252479912346552031500911502343159292574109497832568789388049325812102744646322863940126374431407156234431663282805496179784599451980051522215467770773188455620071797608645582651479865163583048483176744786946895694119882687953626331778723598450232283230212529823682934511562390258006048018204008471896774167151616477192003627418364348035694595279908443742460344257805724970975269443805589589591019471556549311256196490323086684806815330212974693549937957335820046500370451065539733966775269578285054831549028639493366875384275401099569787941306874376253868639680359025558021309574060042276382020547311301864718486563640217834312975493348491604626892801142280905030391175490310199598100148334048743018345450496297986906241257170193884558396385883982684325923322486748861166078539858498599511033508078946123201197674142350706377656525878113918870680107254667606371237026289961097851262102511952454195810206777590122180587849930091946964607428143712689008006815678371306080087170578120422309682394892771799485157836403701951021471344834505921087710056446679006425026136718018012666551734057999293555989012694565916279631514247714493683804518430599735364561272343016825161440363267766304428485492900171046265486575191963855495140552651591497293972402218405648457506069289409356516306551497834620461965337943429560387819654700195732435223828857254096473923258182421767926317026632271630827239560851115589487111418242545750792266313563162700827046427953430055818639794931506633596976732393511109103174867044349723546781283813339246012824850942631391001098205146901258382068387053287276006939166086119492339443358309304461713968404722469709555468972217337199694908335761484651452484294789234904607498345456504459153071526814124121856688920019645513128429051783417631015385299612031121070083975658345499240220707138692985047636343659362005761169652286214419253004971619312154516152646193170052959026463693992255738973257737389496299897112399284037742649636707353860580013544520241418673480805721791965177139573232646158894655583910636546984873960291301615453406690640319251200312278901403424753190754615342058841364846332644642677023694205036435070430588316336284210220399483711635371503257039993368046570799512135720845430087161557548976264613276377186904379698506314080932938913926348111454856039688224353535273024908551732075651406207397932355509669752509348002832548656916219943603968919796358452511412153377250704697248125510906073675739414245431618329753017937464928121638576854960149311237437197162371331111473805961258412535482750681224459889770523458748976261474460409952837342157419082282822443029365700569976984620561021447102519567293311435303828156582588388109969914463930679067853920204796225384966154300807627311187294709269775655395966995171429813065926832945872855611057596166569181686041003394648636976893466527595906057752645930483980817447457759899094043256057947173647892241240536534196429788201527958093216459899665116123210928050980661689971843151482989609998200189923825541538854019973833226893283064820052282745467955402398122105102355759135022223634255288633845321055778346665546668073394136969360148349504495785065970305445451284859879077941740711177425485506870474309188548308754308062764188306967784669935199559502926700216856318731305578901953409287284794224692994577698633170913334655314950710727234569484248871348602278607807249753997519984948625958921175132734330598614779556642398856473202027809959639234625137149237020712818212615329967473579812624858241410789470191906673055879406912732237956631415599262678425478140929070359053209408952231741608786207675371595947095409812070744836904402130675731664879095471775897536452326967083585786608100817581296726660770394830740295309067193623020702729989111195144356612466247168137062200702171944650104656848532830552848054234505166311158768784073524567618541925527967720837920539797305648243029990003359105833324858149758957947151200909420372853164579037269929820021823935545411299587989640560242108000515749992865842211072397620854458085877112236238436499198140648463013148330870961222541009010075145395600657553798013814696729051782263910068376999945189877341473623931712254704245539238812062951368095011242508367142025812753766333644571145571577794606317101695299536063710014852356805942627081152024045173713665459214543613540075750578571631024871616223255716758227323463325285468360578113039057981559217130551573199680894248032392614664115174390495559776768740968615865631198349517531487165204974237662726834048800247770134922803324227966976406424810306498367247803002893878127349958647676668384858138219200324435064753338047821663133450259534096003900608442284760538711662519067991375521596784941706212043955380625257479445200399952637907982960076444038175039090347827457806813631560177134698119727504609515246378428119707809703138627349468033585366009673604818146984699835001145471902825466641290451443319148602898300550166744380660006554202738900829310649840121785419505164089294162456848855301157494284803103019608635803884507275801080134195307746222889284965730322931941816692033915038561485505043893212340760606237575836735373455324561292039322791699198382687197957061322231764034078294715542322919345150146549700933786916808383651642632072882698218151756119793936168978554323994164667675225458375201374300041677531847664382485375091312342136074819166848639254258332408039610602000311734707540748343246670345157755206126133118147077249655231995523275947757092701034507958367506224194111890762325931412784187548614301605178295860775099811597555946869616923191209192561290288159458608442256111245233922740406830499050066824766856891979876200526139143851564619184371330962490972755918100296975696935122934385872332443230349224763434102135283008703172941744528616015674294694621166812624519822486825559459518774187857807923186809897361833500703017682001056919032444491499955571358806461989912900433456872490435971393142444571831813673677130300160058372177717837395597720164768539864431756595399319835623985629508346925225689626339288698597495662203375567628544406502397281731475595714321516457920691306504789637694565976275166507321149110137285576900927827630127916562767835299599660897282748509845281490117350773847909846777461767930653634827413863247884027594523112587159863340035738439296458549442116777519189066434893994980123187781576868671166085364297013043487761289951252522392972569500924382033742251674800359382079564965196667902364185889652801635190894630008681012196835350614462938404327592122833088006298629048972216851247467725416914644102582151749194922179175894812515124757327989978958684719323247015007317982349265394029660790436499945231701541912511457395137620516813809729580832955802417823133023487895814135491752647363270686639884035086371644539755810142737830888859796956440688130475833588094758143128591690874182433681724926414843279640865393892130653137153470119675926905900780975754245523817286503638298783924251931877844501780872256796858279406591518904370927063067353078394336639860971317560633450489061026459764658054467339816749533963985534728578294271979653216306549310373225364740180801802967849789933677711874011912024770103543843960000113740763206083834882433681602817276005844178827589347204585503335699696730722437752254625643936272520599807773745019307081394593922873011522969156699823983824510434898737915072767507431030624689821770823243709941049799071130977629908197425305162137763533835084612887125838166902304860697294510075604445274660195468156498368765171160856421783457623520171817106764541282009008071877954805227321678432507913889187444024362906134257210785609911005103013692260817556352405528761277170895755609008824697350950116203952128998544392564617053573689822818187840440899320080750920368159908898092395402775787643740233974513067813155795903486652806794226223287131291233353243296335597344370939972754179742114099327256304321933510007698624024892863267388948647166755103443349972421139762207400214616206466732883360043282809202494093380082806018661186482420919218754944257139601502794834538878169614219549005395222818942252127675990253745233069436411467013205329823440746012340849183413032055633477060368910795805869171020342808527003706628243553445087566810980632273440136669860652336341570858924468155002678944604365648424527262772365594720333302076773305493100800355340228752529742824139170427985278154150376455479653884264341630102518718540572894029980074533275953962411017177822020307116370190940391465638446966278401570229423290182717903293541609611315046576030179271146284253434202268834625708052096064026202370533050430292069242030402645014611216161493745091998220951510587225616143663611343240230283476759126004910670555787960910691242934799899724716465928501878959611577609948887874040332187446665919902061648388420855780578732398816870823173830362293979935305105474261819568346727577651388599776321717152259046009392443904532708767473406312694844603330919254870171502904293594041485614035848449925900677611875124795948345590677827964534996855225410628218144252549803007622735224709600312298450461808348253009548382491290564323160254156398760817324047715171262561555353442975907010450390718445838760259750051285137968520516828271141541392583317254287328979598170772649869473195762753175572599630273271825549237048240849525530319446785169970834278277714694128954227551779164437923673040153523950176896812287002567596094644313784122324753028614270844774099200939905332387893330344025283494158413572088165132594964834246248177126193599434009542733294815589122590114805866636870786466479855666433765389043346409212482836578184662177751077584365391030483677454600313096849027601979458435444702888326976657009745439165826442890875344848384645442815907108052141136340860182809174632136882381097544454301143822879104155394250946523635489353159586485468645098454785544414097492097308096154781699104250524630972223257284669058607407295436232510885202640504582141767514573451160548229026794034104558321124799549747759571286442447082289192700900407202616170564826332143123224482181930389433257583850295844224754673509770427880631295251335078964014767661613061916687863570722048916711514871382793284559716115719830084602057596954251635655145296741270875579093575538072141924673062028561475231277212492615260527372122849204695549725026182846696751272415384927065911320338101901087103644330350988912858530838071826441761794776087092150866702133579795596413465555036782089573946360616332441014223103369603371412837020478138861383969565492549289188543174739638923927455007635464106367901233279645101105711479619127661004859107965861906013192977753831223997959687095887061897229637221261514587816811087774036254915990202633469578670636982324991683093913915246529968024471349382915992891709539258998656416293773034292385438352238869631273431949454200275679466106021562555884759983484468926369461354127984614066237238913341739194340229595841463189949690513583217286760482175730937876571922242405930142019801859774512876848007798723911244051376458318361044826455007545574742460623463264440555798886782895475546470298440741118083748157750976013676580688771441845953570785699560171046842360822254753983890527577087664679410062142369236608180858963723923974518259067994837876629660549722465768206136601155246814500013327440205317824637971434321520426391488125859012883146547176431854753320504693517080637259982250345303094581839651328492082944174262615211493739514912688116518316548096881887254087647875733062249353055101170827219672709585257521000634114666919817185124694818458014983869479930246519628684618455878975699640004634623275862583918984686407291041180187204507660242576871911072634988582807219289159059083513139393474337441995484038636145780673246633186930732263989800657164888255966931500330522910138914732516459153981420071008613154902425656770296229007645020603522969223233097595893124833275942781033296806364727268189563701568141815910601211256045344054466632883225728811529180083425225840199448006617046464777878960669028003283275635518564297874774336249524695454174144511891318855922744285427588668643050260447916015098890708272912939536498480596733077262803941108670691656838210005992372272660956874564080591195052086468232017010543406687189318187148958915152497332887136407144774317556372707753098434361398508526235591386474213541286186531674377858693116690189463527693039733323315118539636682713928698643246654330743495211031191485401200118512565233155130965778631329216374443186553441287524461033123520607130620484885892163250351728134846784669533167860686513041197803778435418271515357471031203660254646150681073211532381435370922804314751314699641344943426068367774239554397268711046887506091301313440601063453752723163362271618626637789930799569862752763027249515438490587113872801238324538903774375076620237200007588613260697962626480250656624149357126281739290400826351945335148628037027231508419223556297713446868061002553386180193101911647857071862574687675633850140314529930272904941321394565907863927573576103434059067277049216922965698460519313730966315112949680383755857749555230994041672009336023260546053362396379957069297948625241850899054526511918810083238831334263833631396366052647490807436741324997184759602416559682128785523534635658141011606672578689972071116141515640695641620522299175381103041024750222570172996145982986018763337162416614770573076353228041950323758721139803132230679748394598701387279384396697840548544746879803430677417652503685658042374253071722832517911732358990613723456339639829345233121303225278778476348517233304289473586546390370603639569681149461109093867999651903513999988248276546196437737196970291925214803633781037233504653234504680203282926330391097818604446137800955077345122040420677529073232080725190599211433220264135433926599714886966582694533145529884737499447817419482228402150571665637775112881160729192382304555405890193758555978984724618264476800355899904809828197971264448463139846741180416377335064858730240120151529804305968233318242021197797592417909541656664580484318367957474904495118113128378951189877351231825988885241315952436980998661239169268923628498940796766002567170403304859935054477389771966223410259534109832436380966470997130003104461976929011652115168628557238381513365421092121204785442067691332530040477296697261136041470139875806825688386764062389458649276357547120990295579404882109855127390466517167899690664125806574577413557677109437518492608778288044584169247693922068678180146518030233046523978522688629068303864733606765403197236223993084494996992819054027741032809138558856418633874400776881280560392806199445567514150763483724825183383226943336170724117649786695275778888797949721341592686435706947737031691432228737451455001735242380197815931838141384924193595610085839636368246055841500080539353500423488024879652969436265691106236598260389958986378242624927859797143762862948317757467837812988494741124734334651658190362939953881958249507220446501174005950857551883729651996027076277725986321030464896186582667631808938147345273368815308223719874390652015202308134391744202930049305072456176403886226982970484948686644517751330001809298957568153660652004947504181727348633025304841799860365154257460270145130062954786923997327795226732931802531661071876353019147809739089859078415386466498521935230297777817075337719184584044070480311939151552075622717194058571702168273409151270694840571921046201198668527691013336472960463529335228194579647409796713855405365573519035696242099881110811550740146471121702045843607812569405700918077734255535459180623983690305718685439290137638546906506651772454010071965248912241554504450402943300501729894014543614618859944369064162940405809717484245838793525466995823829843470611471134578620505428973835786743067270214893072301168917868532880811168526565532793276837831526771079781067654245757894555573097347406609267516947309951993879707337660871470520018532999355739468624577769475879918220269525797419121369699873630220638178157704153316670192703235100027084702513135221886682888036971383535740313173187890269773299423150536206459382863552917426080618517031581915154539012610965436707024767615855048860258709264922194252406319177459211593637234011697970729886199554653252532539056353890605313117128099756872000489526276567520790853594792471274880727972973004577098495398095354482564387102265320446637811411297639455628336529356271831116930303238058523193212431756862491624891178676231699796797714351711696400713834320147036587406594808672067888925392431271790675270035481065209991151065295783634381898851444386053901579309758326640836429240898467625765751370769342403354191142983905966787709799542668685680933782517131328684800897554100645527788082066237364311176670437818551695312276959127249910527404736965444705826454597892854301301238631961118231714629766970260522361199449197601133410914025323366121536445519202009413657468813654548043698093547472131070286464974795282082853452188364146602675094304132823166138025402523538110574804809883198308203461195565304947708561416171854556134556159107972755683467997488842666262279349814463326616479923110991511835236027498596026875560373738257391057918603619326958860534629501644715220693555054275128124129823507379735248547334227964849774372418170288527431942047229581022225004785256101850366979511764394206043073895742213298137508020638840134474425372458851638367181639918242816224507228193901089033857135792817280402908995752968947706730235646254517974870162987035189154746045310439038366878750088304619649660582317495818061408578915231975063716320568009790045058988782043024674126263932317185746720326618503638748139909036133589590314977648639401261669276789016735247293002856641861824834276709516713829765293689083181417776560193447801169004057637261799294126067526925446396553052347875129347946347516945573731752511473765205421732129546631396308002328213160867421441512393545061958905084775194193355809923287192232712895107803415613939187946332316795917425739106784995213098941670413451172684546546252489595509537295761331905079750887106951813070670121834786855226661561559928824514656205936916086646635180521099362301076642756406789278830721874826664200556209203062456693412701380639532435693029792949633703067603340275000883672909113270273686943845838080132742906652550501765433108814710013088580582639525354051302169182326804209259050732325049751256584656385322139090099386144867883078869541793110114866611864713347695400419584596705051167189420047296654742525796703344326072016695939854368650757435651580874713369858970373353407443131189059916733635388339019263950218213735930618655436067781395608257877655572941101317030050544397175590426958618795711582512156784244897939629314460365277465723748840403832649813090717568914166220136264393549209171468790139662758727491962073519372288080644724239784284781640106427410357448372340897380956233708209553818068996309622765183174921895325114250269280421723371135124351197492218998138202871613209375445095424968383451996097124501060127273737706462803843528555897865910527848421378475900935161975169321331726287394391388279909336568655842700352160638645697192013162719892838115909031227541126342972255419224548201009092608233322880270823758916223151875657900484480817125868888688010438991385038456634007324245062119338042038350857134893194393684856937644420051742036115220779184158415254633854408245303622093340479660070285939006371042789854054078518325457784526644852764145059362814282681103630584281866187698228796445601934425168603694498654228338095609157235159251958193425490659390472738430637990650755182106815427468460339408538266442932623313593070317547017833919396678315765049557052617349004084948701078272333133343298587495065575894582769758634216676219289527641495556208191115594334920229221687179330012429527537094715115907568840216339822431969681232881905432577924650707307826397716398460182603667215531845443781203975345910380417938441654765963626262705228946334163667103641680004449759670976191751508907307623035115882414163971477928710475756241466957917667617303357583040022295343529180971792688683610714737099069860057847167541732256727578370066357485612095149801093980443347866314475809131424152458721320023968767816514888759025655728516401207571488976964415476462481965120150836353092282365209784030184268153821781466850936667387104919870115562904463739192191310256377225599002537930289557946681288892808904502115944426632445264414849068271455782055228635243005418295797623385931752687898014273242838108058008475076739285204383459187447254988466731311057833360536309395306764595420451885974295537048180117284841167030410918423002262857245363754148296891329660197945189611576798180046307808035754599032769931078976957311545752463005327990423829035562877459298000744084221317132669898837952951936588881299856354112255785401520650287458265366388991792577915914134421485365089318403987647238371465994012419336392906151715316899433378691040669545936893729918847940382891211826143692344133745410610243111070293890408047718964324560307892400905633176294923576549745411753466181854133359785273604991254868750609612412731863054427969432848662957868764945003591802851679275447787397991480878681778283974575171953070697445558054518304279570914743818853748229368142482351326922813615231882115454998271700560584090605011089770534735335707239604352219084171460055048696041159088192967183635224891460365669176877148060803659542757118014036419883397248852273687807917417749965820096061400096457693302929107242567121666470227088942137266107785807158834681735748533665757419320370740265264597356627797956763939467409563754026974277197184576733730506577743413497998773411987392332731950913523385915578458539160165109514111578550445591986811873809736586623353913226856762302139637037271041444682774814396771161704171097683687056379279178969501152724086918516801344270300892681151207322189667067805078805084936200149192560562581347392207428768243310302439351448252073334900980025765634255783695302930733447367797462346604002936991558071889705849464127765142716095955281677952986340649130013033480524053467237370559403212829803172806408009644973060134404158512610673570855116917010874501378336684964423762315355181906363704034668270677704664275213734373729940076064407395393561464277050819919334088780491938784983634797845938859410504572353009902041382645422648328594558285315510480157124953515102396832517981793251625782635931649903861604749822287399941275504034041525686897353881464692491273053662081771420182066592303754246699611761736165926271822183723608066717716608526688424425517262558940608609992460052248803321795481738427711826484134473254018589908914273891259872166150824890345399220808834490224581263525125419967114294787348545951357686340911114003986213214146088068589066177362449393193891546056257020903663063090950594728759557777248835405959648108605889869981655084320635886317985399463975519571467612781490982896004286160796184815637571808311607252234580416467331167103376927764887385525534033565790277637590485359840902827601714183883396867826759469194710605452559289913231121302176113781213539758000464256117850420534647234376408177812360098402484315748834829732061047411670037151914243744663977967706297673909514744245660789528766203093912022601879540008239166642136583151055427781617474342134179214165434735602690730411046479675157508690182237579853995149699505897791806317744464628944164877730870635859836537691536470853825379563612796241376519071267983599527761793085256540885238318435725718403222679172782804071114874165472340482990044568930126172993208856859608092613770374223505100639703021012318980220821183112163515374939792672543084757876936348089738322718619636706234096951738425010351857934967618018350381120821928435899364265558043166340322656990029488082501440337887358162481281346236974722152857158798926189599355168872803021811333260154007772076906311831676907433683311625987038640643057317697127521785250499469952503094417604129554474184271349427012419529297540951375451003129954163295457112513260040542129168356273062911805609229359537274232465729493245559393439844793995347292516169913851245888942457833092002866680372299630180145472291456109662334636902730378917194765451547650516062248758917333132769259747939817874967099150449604262949451164653313989424182058377543672776897312891211778972919481368757320376016483126166279481902012068140682206061294876814686239875918528592353893262933754140777288289475220491959244798331323287346220981091076552090469813514711924379546679593660668004311483298380810362584475845358924480756754136758034112473769843392865815843741664179797913771437968803781278322431225820211328425137745659253485207105875656933524597394959631038613865864993105551430429868504987246872167238418436667244892100273468527358121661306667412187572050700265255963965438685955625359896766092002309193631223022899062307520547677950654008587962873943766175348982959884548361187095147969185459355615032840974030918052911133550229584734337982185631599913769980047078874452191366518864373507595283208902528473291372948493112735057137351146629650891703671360977495621042869789383954863225505882315650241435035639957874354006608127894595518408070194811063270248488817955730004254275812421609112332014523432153980843384098162749201153828301222427022001325032235310044562970154518541241067719533425940676461012493758482443622803496193064841750587029453115128237324015946289878947900096880219982309095096114755071903896997325178142797966796398477519576576327477466379598167202893026883353310725039459444288983316582515735412102485607342380359191782231851896988811469066086745803945698559489436082134210443159015347126015337468591635581518070891646751522527809702627511780661323896864510405946283977041068976819399367562278356837376190041361458949721613694864152249853442165710913746755368872008645917532796586039633960801196382271264360474742190576228815009219620498723523369430966346661712558495422042980368758129853669536706951295862940566270819345613194651651451609888226244000287884363229452028864288840528997217835962845803122665078209036587865882881161748699244134759336456193575714639090384737659445592478065004250861713126069311517249343880679757019205867768476943204842824405433714277401817577090018536295753225363202338588382037165995552437875375865301058464560128123230158809166521765198952937770028716657863329544083210842925090122943264515443110690682790587644025588754051183602368811298360995311185308886314470239579150645500036302809811796201284666123092608694616007682295381481925810822307962498028163325832232518201317694199694542535612266066146025734709657527070836168466670227032123539794488789877373032774368437697956882012241120586989410796862440182439677065586377862607940556884967954113365198452001172414042721797643404725392415889174475199103843748945124834928056047660394059654436423659160373116470651729806233270486736010963403910617245957413081118706967241121367812908993338309410322189492824647591561663813057776665835883974751078502384919393582836408692608512988295986355581666883037057057357420242138449974154678636380963242610229099712726738907872285590522940150472299449688857639080284798947698624117319284848412258655831346007755074519697299870371021972016532881079456931164520433574627558195299814418451304250830357682376528803129904814782671298281861003531729373658151666238539970948868338780947720482322630611074752508539515391340424974771544947640246078206280929370128780988001182821256722102987079042688213118420633987149518269098250350464996260209009781110829940198009487321578213635834672187254706647755402113339889327412269789988283616257030785071542908812299501925296086328774770128170220402621979091834633368237754037893216922686365928763783814881859539469692444952548282330010590048720020915671942801753883478208035320658037168792858786934260914081543918710587499636819531626808041656109837956155072547107244982086756691881010704137206422630947998466208480497106545493968731177969507179297910092164803841162965809545889681664638893801341375885131159008722936570668473539001447724291981674014325669053097689671425459156617963609401699392509390161304370511234080135407008052232711916589684178309083433758456759340191086846811211381200912696604085393441332641396094117785942712301600403059906756602923623618654521706852134095642544922278027744146151615684189612827410512409485643715996538039290478811564335525292594991768964253674010012399178867618424308559906897750760635108566073415306730279587483697591267224352618470831644025552937201756257028265770857483174031895312827107981405966147932189978499000078029982309413357763873004352448542681175388320910703694584743784467297057605038502992095345548332082789668968173755685897809250146947066449455541849468073404965228659999923525050940353817000791175264879730505602809796958487158236886946881928227642220691206354087507317689455149794365752295487032006208019127477182685701805637871197803284534800942100629956972742946176441937818317138610706927945588943972187181591246747864168227767944028659709380081730751972632870501065436529289007091333544617559849874315011844354547387938798797991847170296343626874997396754461791223697510562859973642131694630294828162522307363829643719484994315996303710643613644977519697611179286055079687732814307118361373075481008427564197194546089313147376874084282080546702420755775395927479028414025078325478269050848200605367517934599286366051504276311129746552897897633405745418757353225673167900711511137557005729868737926378620941127953628640114286817479308442216456008815592568366290209730278453283751782408259249814608649814281277300249234500871693360714655622105254676084007483255365774805953212233821888919228448255189321301567805708492086098174665831436664287276840635409068742109782774396003960744866966311631420927039313187592214349889552400334418942380743615632826666370364610712227230332844188395785128369151479962726152620547757614267409548462381386450869177625479172007718807566343763209619309573513020372909584741829455006204945645926873761460569801648659202812702564281540204191139148713555813894241314709338862666262194712058919495000547012962123486583505648215592692214582714229024958229853659290128133069231774376679972230385204173812423217765334778653885685062279061546095736926693576294312996766543709927310991341145072690999970530608741469325463024529641774546011091015521623288753228170436492001464675029131742905157385015607339853276628764717057901878559114224795547602681584656365008779326711611332252707096380508897028132936288344429648229617695867493009302630603145330125332218200501785548311756169110278006855669790306957656462639665034297727087257089532553601692812539640129928564808472968616166288714800013923727800514989288489832164672123923168345559230229798523261044742210026839298964158610698909580389662280790953018535366499252258641937719424953359499635072999958793844433509542280523818528280352807021493861688196131916417498002116411644597877351093002501946235595701002705254742413733754522102455451626595930083141512818109209722302270970014632950321731381132323598891638439886495765630454716818598844829522907570486841721587277706743285352664964857876112108770063762028909431551943546388167386297283395335207876607628807789029546165231895101401849746358157675495500810110475630507327371508647603860000352813451192907748604188964204088505649987756240158582152227791570793018036384855762677068106143423293851450180342947803972061321903345286173018948569107912926069220916486749301733500620287499379968439747134475079814958261040564615400544793628302859370372336055742044036805389517173440585508632630185404794170963314208151746164699637028578394562116138669624454544637879757390398792496471660641074960518785823207344836426765169666863334510308061272477227033233729037111548412661816292950173134661683918130029124927304575486174209307881598498497618552027638483193183379140162106918171342087638628255821219635258350398856450030783904271834788999591809521814577851304967434318440166381918903994196047851577866762837059462376748690432873886051581458817189299489829317561165614533705146926909960466121668299335916254971930188030569475445787205458230676157510143307319546628919872089551002437599487775770194399677288463206728265922986858148959801438510222084521048141502352690073165322604569163101227233083364983196377790898309907986893646856664977521362139730094508007541410021977875953553375798585617219785684697957825727007957665502139561835930193288316739543629925367376543440862089496674987145141417775737422260600726082172287027189658630619030589465296125188643181765159425433218966387786048679173790975166352478940668792782799657403164981726737392016948506133704079546465094398293477819866964318619607733290357137211325999532980800771186457460085793157595220959141136350450814704496007947704890006205665644649407331224444898287940484778065737849296436718702761078170202783924632910671124994647233671159298399582717834089490459975165450123679116987270065131858020186736144311096289251026294740593034799045535174171294362540052348814444376365397112226192029632657362694333564527764679489818499488831004112612875766468918801473311778486302695364409418448828498328891827963370534388216486211691800298776776418215253231784229510189405360535694409316350790202088012286872026087570927405598948181927460317634939466995804903935105754807801925656235673612128683259756611311668577617776876395767852127913029405295034053862245035303016297319932862319515893431180313647507223936939626477821453503568467663122287449156029058236841424023348043907031200866807861723863232383109663055385293762127177966070951925672222908090393754327663128795482273410287162635957409867663464177040404919857542912398686775191297230420849500069669908372041417266191161333711422849517593140867024800555223079712732075194539360361897587553445593849662053711006306307634243846594270631623538652316669339229288222118737981947813152876832223832923642670352136974858826965755456859259069380566320194600622041271522981497233917897921479379744715636697324322909106719458712939465234663981875920129581510737810801259130489846837103466380165543138496949831089759326998377745357806996899608338944597613374549247469544814784381868379425904988757959790182208222679362385868151948770792882694315864678399851341999827936726814292523572184134968865517559543677128058772537488568919419739497476673097015072185497252293604329447994273193933543842783670153506381846292101084695277387907514622473589546627542154838111970039791745902574049965378738064221883500004179600366748854322456189481298133888925126127361295205632508674447038125017911316911351917291200723633089062763520035471540912087451026079297860202864753038924753903859442692280937319637901512940509840950791620463585214002241366704170442981258866729731152185566989745518027859612598864585618663206169564602925098790502100956408683901868110591585474974451587395079432125183666859800897639554549403028376098566666849203877072368296977273054280760804000383011520644853372437201727796924366324792896650923510460062182553613163423550542374042293856313045560051509016064529812501497324809288880187459487471657715000116925407601827126679436650318074597932017510518282923075499759632760778963796849522390294096157102232055539492528752502743119815394917129068417084399488138822711392902413326000567063752131450860814252734193023628433772002602760144881419919727876967656280172257292833335822562156825153507010842835757566724742207455900388755312918009074290749964431087206158247586268197381146177971185365190293050166703596995902475751558614003102005942523986103764491319019664037246308305966893241213461381688244849146274313085235681089168014932445896176399630263998878156877052648565906356134297558796529059238110985968221159596354816298299890769784426771272812120929602557089843152675729248659798127873796895117200259094495428671240782062473381601342694974919318416424600548012739439835431629569317126651829883919998523751263392032519850791384005050755451461203499106306239888145668843372559553485027957883014016993451761999646764413544275182858715757449657512674138637191728102673739225273583978374652915957567597781225276574187327268723322481346936452262068023843491286413838314156178315575015226010207562443415721785908478578586087113000382016045150854445982625051412683670309674289077921703415658684652699562264839151736593642374901234362228592284263439319347710862310638416850022102238809390778042141534799378456973226779308366860123327837134841008021354760370496499499717415747223447024786218630580958675852190589110900821244956037238733222379486142429404370861764981996454220739453562687003430394818765314645401696859055715807949431462703034654004670075224073289837819347913712378708478205256105290828471188167016952644191051342633268925572123309187940735211511450426408685165556532914523567005314809418759030885998737955508883874055656846763838994050263370828392921266762484510555756997487563434307495738455593129373441231561973394657009768652413849511660279062239753315645276452371378155008517870473385844801729579882634055569941423541034910408369960015098460759136789266985076906516041145818421862357986388387313825968485541492295970041165499000086425710402642142959075081304610214918004130204295652661948607400501023458776379684135701310471772110296616030351877367544983216057884511462687086382299695797685293630990178108618148025775551794367766333927314767729953552220979053622624538384334440332327661826440540041458965763846149209626000209559598411738202035707217994035755159001658323191244306750666999941103330214642030689685206815461902095112366879541904767541693401712126743097690918348667482589622294968352527479883106134830183914076040258495691169354774553038744177204653521696477546737710584081614844767499698886387712212511998114061693200911980823484769024452623779265030818604783608337033883072905171350010443078738715375380856193886339792156058339859728806926368537237541873534235241024447726479804517930532563612750003461671454654398355863997647720291004614783926597395102190105557257434661435037341633566488087153357794758723473306668786226635083711709223060123088889627074395455852190072444440268967315073605708339096389320622343969084317183658858174023953652109171873120050447431677565606654916007990207540851944274363931780503690102454033509382703172424367335573269109714048355526677100756740047809524756877299725450911522294007815092798311811378076268578466867858133515868492727122570275805343431108593603127920684733231678739175893576763867952219142240370846245033370224306569109002365766034097543897937643743735405177167389864442933944746994031481516707248865370964176822604634941008457400024097078298523404412023390740730055830582649137672513641464604916561918426801232592103906398441757605683286479063943144602223849535489880662266462203430004080238522673439510031215158262620841831868656306795341841302385427632018745629086350149562346509796441968884859907210577691831091847288832272720048710881923248164033625892012448844357899223930885611236869346973621393528123263966860799655412202054131046443085462231702174219739555531456581933802799217328325562210192971230806202108780041403582735900506617960320937456805098054007617014605459864546510801027954566519733714554604220757928002562282820553896367423570991250404769873446847963783655298790036289591269908026396819967769737583616740157526389098688083255440123285595116853777526609477903763811514437928588160861375272560396409722662812612984411161701921207735077083643937213697367057230911747522602309902582618367151094986240373580045127890649764708799190943330844969227277733626637625538189277073178946372430396353385811238740364166272888978197692266948501314468582660448016788907615041962860953698312890902391771391711605388132588692200717901645513782641163625237742250843317988279895188311284613435742277455925287603396462629851912685952155620270566137981478144664348289125772273948770728016081461122050408443645442894411697112435598781601944831720151650611229408972114058906924216123726673367050416290324067780934386789951036318716933424148677961803147143382809274979193729180832716414555811452020426147485256136139124642114676860942424312093508448064842160903959038602998227622296944665938915768204977900353849512374563885883778340997694849210345376818312469672195213729851756857426528637763935002317547637824161312870628224489072597966323011331405485234507842258448221906518250529810632862776118452066798363424887804271583185172271953046307939804143684971833114689005161409925956626552686883371881498283974597614289738929896712900716122944737548787329428360672029519449533482788958151660575152471155596549938334190126217457269880621742236237216706064384085169315931860171960907369109248611572684145120140590612847880430791218563996590086373311622191390241903206227345605920809281669183174780679356993317891990904075059948126362029575489982917563788844958789177736534954728566815517637186340889912052438288379350976183210530544036444068641881758749023182862629682946302600299242044762034388919046580718236963818985043505852503106928718592692436690323352266910473490735648390154453006777070977798601845632036373648881271804937648645756703072456158860712959844646004096198526762579608426756766895594278177708230753338178545863352762057677245310816940727271038222575230266267398501974624227113068252051290718513513015322240360124143864608037316095233259738900648798899021150508359200559642636653385554205040844482646589445223199507529766682995805103244640973969965752444211055962283915162812771754578770692613969927150701325342367898599627340872848764612318803414141498258914899655981317375970681792082633286864796106657188716707632306566390000483885005438971326375103023886616526551366169800835821760557251764369680277751277548869747013584004175003282791943820241875428410125477727883944576819131664943487412008521925455295288332938832344656505547149084083187576406392154011602398999009267006857264232041543758001646922503130239779489174893219695584390104856361023954315926562610158927763989861742905172703125157297491907108391382161830932229595143591855161787088444134376598096804774277659084827543840608850283536651718075829300884528262133981563015061495970248965362165964314143051186954203828479303703596339093803942118187516770514525435418139317940359312667229434601420326263404517343529291873542716328999815129590358307473339116117158023969112073471142017462949709468119563829080724036347545970854867084443937779061209580489766685267198800374186481883209742248912317551759865123236591954178833972439573858150720933626840141114535427029348223761253017860996412710914004341797620590047355458997086185681039844302507101139221597604369988648648114641096243593101403432791823885722909174327973670351507228536001656251871483356562686426293836971556634049665664369009367393019470663968181535497147460276727507269887502007467571582256721267813424143510220785716105976263702888018588641056505470671130148370679765609427640243422385754165196324486708290553015117958322526094497810058389289819217590399429885616633912205464746210863059609329375659560734086517875070651107638449417882370539894348940660239918210422580599089999468736441165935609339643137631387387002384800798608446630197961378734018317543764314707711598477374695830145177163901705468529054394069594444622384488266356121335421489424564246174189292657691256013466903749238132566960281776001802662276993817483736457399606601121755159269154552906180426427667703250866971829858862606904948878245375689083526936125281279362071203858606713227576182381114975407444271768063318810885206054569568209327037083407908854020358528664456356138265327730016716638100152559209301227380074393690459780385219834013856613998502080253298852817320224721022807710135830950788200022950919572952051352986163410043015542367459451515524558713858744035096540747845088722463315172221537003530534991274456492803710919406168253392765466307045614168923728098931441812177246502543403350749805967000123602788278307843109037578939995802880093445892038318790536224007590162236400421964187061139881225456174550619385737536178673733868779831650959943294376080898407887237813316534375006906390230885243572337861801820516882827454873250188396720551199119321041819255690215530292961646423690381473510947775442178284487519189979854805817324692353861679719512128495015940947240374324206485344917492574926209153618856124465638094753343953939403138879394476760010815893579917113889486989453389613710815037787172586063441085837812404996185347304573658915402977779336657294992721546829190993712590358052552088163712918554500077301685804984194071060056685613883569799141202799960552018886031996706506202429399520773125580005254504587538223906620985491933188181204102845742124531878725486538697014357573779426798560393482339159635589352757787320615538436855711350899668962863076603261173338957436866922419207128180968183824390876955766074736828494843903344895969026535442284847562286912613139789718882919574740804398006279861952596294779642875218948727828628197099771580189368775911280111341662293678514836991617001545941120571279057035780344192868644105386101653721175690623247911062493708214174528356961474567262803904724499479751616188324002394568104792672643260673487410217852145491224068340888124496913328072141811869972486001563355165514282759194692172115866254075676563860089857608360204992590121957469559710099243588193959932601816410890857937971938331590821777854693149150974137521889166882684633192337172571338084467756786277507547202099591007557724533952086928565654992669450125324424830994585938954754951680908701032287346299120374616953222428899072688869477321678578431200891036668709054838626409898013531836231646440300056340068761929948741406860328397165760690199463700881174105661390806878191243764956249316446283095614552512352272624794850378394466897138870714661085156548331216160917472875008302030800701288431059730896697905188995605246239240866574769909967196318125338322395748435696528272219959922260874008916283014067786539034815610342875860491073739851415319692651755440682559670750788812211543884639479527110822076619988155794486985749492850091792766564013590140874194095323327925482377754794984225203616063888909397293803191783838792987173004652270328868446707844102636461978768014312760724073780916467172171779383026752062722132241202919444947039891952054055178670415882780986613131527612225759333681338975222801312991286196185546616271174454765232534069667473836956955271709216680623452725495438247815387841292380933496414174743211425544242249138470425740583810045985003322182509740272155503895653759202984113094849075985718101796112518315440509000926165160270331384486603784174302021319599437640987159144374692566194486022741550421569468604923565978563074152054180568538420092442484744674758615687258770551952080936558677477567042392720408217924998227580445055457622579532669557924418367210381698255273040486369093905077900694980454148788401124093955872949502347018389891025314252888240279833002353174173686109479026384211749083836060924650123329803384135371862190226018294406112828032646069322966639605314786483179220275273034335208040603178302336455527111492834780198998535901831624167791416964006079863623663439188392670482464727098737637417997257588755117449376426674708321595228840724001723338542027180049853803044798344347651343762488783852317881329853614864151300323074707237894058188085472557638535418677941874023036490594163033379514936409182914507215333068236933434637817282649139710985125672341968256522897053165332967866256106305686210789651360756768598273794400796252008677263385876984153461741754597127060226116451047116564563900571159618256365473470341066820963357712462215768073965055304067324861209499683913890859770805509733526971128092193796208894001633052303364091558390481601327005842760947618808537555970002846762853753716304080575590169508801252401430676889585024368903142877388817442392781033104622090107288985448778593618827517303861767101935090020305433138003552675128554638277955885122583454801631497797253041711424366376063171642946492993604150082141483830951083772531220264404151734124745565362820578120772401170418083523673479440623961811910665614006681475592035872988109732125830874386876565204553103868743889301887850800259960966634254454091358366629055630269853796997467566748544447477504971328437398534230624056329951527005187145691834981412166156566691304483745949755687492170658833884242277456819802979548850663828634077334379070173602504074061535242074433230311169246552698231319785518963805068409338176888103225637020634247277762377829223148375999522186274068608964438932213324745470645184423900930759471991365455212126743392200362913841995679514182533247507131240505605010372744423555809309755670882582600831867964533446641242218428243368794366375068740794585597488929766807157092535755923260747638934916653038433456220104507861681767757491680906002940143405946885124063395640167653264290538808416951610758642618452819850525464119911601259017026657555687179690921244397558514682526116559877042136243828044894805065418789828194824269838775165871619328497222408141836978807723961194707268387693705727635719719138652328433534216164335462966791242115310217123345775699016537011281028468166124230770581418729961135376773879634216856155718775360428715939446278044647585951038202372645794645178122855374893989481216368503349078419410951341565522692909556669941994694001959880880764999418213241724749573610504895235411465827941730360003613097378867426386816909750112187487014079299457612946307797405955144988397899644514374054012034421119765956230412000071096997528845140794721163011514923319200848486929163126533771637773041459651802915694333239201122880913714968351405951347604546244822422445989658042109308704129076868688109114930863443086420445693520063664794624375784028376334971417423669074052055658496917269687593293684273932972916515242381425150718716539487505045906560623496441516073790222831670532278670325864895401811990352387480440271810167341265177064334715264096558417881844549771156786400361723215613944520316097691924023155813269885184072253594162568345566393070970658201140082260899511718459648526739928744006336895331002294362588836799165135234790826415694687286828999259864393720865943652323427932662200411336099752854769877109837000366670284187400023702061715977051115147781342863298448977900691518771706986161528320739007481801962108110519806915329544554668903358129435976489262747648897986827643462667679657427999838784973649583343888618720953159129546346713358975071443065280992022938350299407268706531704951663026097141068258717840330308453876448812566903661311844445120759555755825555538606563182879283358275028042169638142415711964635074170396953234786418439324023002541704546710229955780608812498466363718277851028994023607952061290264961228863527629149364871091358266811406939497730815663177370667540805651735007892649591364568957172471413651409476726748926539838940427984465565928744951803817094775205560226393511143412243731226209957131715393464879092688404478200747535055028115336013566901781669395862893366801565722591805435525733057325668878293082079524427779680473797076360045453794451750034576275857324839857391044004129542736153118086297577706267439474146980735154176559000553954153841968127413969931347345063960649038997681904085539702139515358672907149810310911443659188040061617103309981084850758485030711522448982135317872420370922582969333038421294579678773464649953903386031900603391741644869873647732572356652804150563444010432958135079960509309191473131911040956104701451270134244982332162344069484849861364578503005441100801537045786341451463823801517932929318330238834017795721314281830842624180297868329695540961750850122721767149390039289481870230268969234782715726810648968617182824795787926189817816380825285922005078553403254248595792638598183002906755949369645635953809489799690887989189905471273853891731558792963476970529338708543281058859103305768136584353302784712008960560577997370815455638651266365033642039938120578034319633782593321100974842899304997578073069586421567677650917470216492119822504029916311457270808142575465917911808937469748255096186343717325850451173634280390619202389678701085369835872464937167913257691755966661785495650780154909412618801744154245576697297413961248448672776468439357320486929545046796366886083542362211566001720100875075946592698620468428766967262921196966051734663590008057911914362984288738914221994239496642969800517183529440440226502289543645205092803488310075944276649120377690864343274383799456565843027613520685563064579379310631017632289133368561698388440757991043680117403011323719011402332992537559086317959789658882282837048383637083344376937518097582877964861774102358081813980445242670209811529045788976772783723377890706813152203482197701184767925558808197280021534483495301812236847555569030685228561979059799683573772880083510159607348067772214351920437087774121830462043305295411714694506652777324205885589572596617525110641661505191481156470622092435125440944576862481219078500661355360924439196525582535871818600175866599902371205408240571152688577333565907834601120165053521418377608606799760951245036318085481638011648286622635874635938539692157306023149635850112959673509524312996929207043503959520501802480562218489186005289670589517459067368370607944350161394899573284547622752122180737133647339672980967025744725173271446162071350421943292987875909023559248928558126784714556971824115759568917493782886798522508461053068740705059059617329312284375114484214847321411041360867842964113079358768437002653512499170193800937751174943064990048293135521345368981856742723865196547075329690541655286628327513390447813842654688416687565429943582343061998567330931111418753436630168757468863223393323908737888598661082020801809975153056144663578801415885463132590507765693769614688232398375780356570053514201421109919960303828555304491396788530748801791265344611418106125376622476822209637574423148271244867243222933501997327118667075622414174380436846283378391272395723457564532983243795606417500972677718351391455508206774383538134602675330452585063442972170444941838941828624567563204343838723307630159570095737975881213817514301511105718330963156578626580323590727701966129231111950748561125656156263221065475189207536416999308693162945397632778006262646006904688884935871700385224903778701563618066619475899722634039266334390088050139693819673714144050651419043755546051696825053667472301829605759030053540226566406337422835283775038912851651788358329474575623446075162792187549454250601882181930875896889814713109601895884141060819735620229000420304885634909267027916477173678287221936928703117372694513481842509330594738382508301073842568408092907879638472729090117762224065707115704750609982827510649476869923655595257563378355145975857429017667778181787000843963052770531460148334631566159359727845680223486384821163291198941716497245993122439314232941072669694306127751549784501939611721018138155328295079286084866604194796868324816791244174771994145852207637308179813080503469484231926295991761229933947719342496617432635422172937824824743263310540432515845261133238455845331150637271147253882111134163434820617622815316368001079253824974442678584305639698245245463065832436536852380695263502889076459578981195079277399029835984591902008809024796040903143749203764180586871505489614595449386267269990281763038915413185761819567580530980786191507118602405461420308074297117167647686665709610389361780995395690050877467110156365155803902613392455588036615494696820045403044191368504469764867664735576106654329492037412897846578565438620898357867770782330616651194318159732679838859621180658964755178675273692131277024160396516924191935115420399691923949743618142586997090409611695914482671521015992087319681005026748658675878175742448598748213195090316222603132332413224938094655921680830386236502852367445149108568182216157915095039156294038349405138124255182904402776430514135607615822183757860455765776883345436433512153708486242025305212435363496196585189401872653220404002678646197331639327513466744596114020337886601287536064626419455931188475441449218945411061413705076384382387638368682237087198617666612165131258553674275935993868242061660471566743000571270639680581786315741714095806709991141637681940399839431498789642548176703744858070117156000803947772311381302090297911460973535159587544086920912604515882333391939208856167086065165835519270354209453025779726749176323912476086739721996472465313045252415237591929538576966406599553256474153678571255844076793158125837811326423321218158485248864877342658396060733171003989995467391266391188666713797565063373684039544026466395633756891236367977758522630614720210263017592963085407367579635465382790470039764188046766946055083081988826115805859862191806681021088405085628137789897152486675434323394535588821354647122895465466601027757513249589622831548847068947054245580471839851361318957609295422685832407286294467455611089698333305499378363957304167899715646340248862777064173326463565531725969526082197809011624621610375388683292898573282788378617955745895953691632036092201729299301946055111409129609868526036517377893460349212339964861995318825367998766000650975889305305900845124937277080027313627719779117536566337647649728951920501572689044007257953864555575853586948328834582928046568108304021570128420670995641486537916535760153672019188668442558672185811928330087726533381892163002362430088534670521236916318725174124322054926444749685800592449992252015477848917213966202761175176982402089588567393381893376145892250376477791098036348429247117535511928299381784044829365867944574045530178165717612091661989443284987751096145125872143705284498772220101654905831662448890002022580434204297819339412178277145990015774760518909936692763926712671839863813685336545454576477085190677494914324748562381858232919782194273868611240211555759261581747202397971322353261057302933772565926442491556796228353633714159929873612595110308828595870596584536372579099518847040159825932010058930999814083321344149898491935561535145800453295436068768312330609034923323616579060163859652468310625095611175247992191524168596614469986233649988891781327480226623986176554222468837674779853055720665608267995703369788713734072829606201647307993074809396291285135163013219189526502579832139917872876280611794228416018469453747372869081947307805317978454757709481246097167189169802175631611056749878994158730640781600595716487501041834356291510792044022456824331682661679036701326806365623425444303704253600665592470389438497872592158625025302017252322530536401319818548743320018764169597130093651752857677248339838874167473941337952265693404379960293488144115813868082360717991191077291657427874870529868621672572396947474117916176981102908287524735005844744860809500041148078280980930108300495338688018821834026582919652883128976826474763203246788559200709916014576688352297957685469303229933048185828861358093988989307354578277007405730244877639468291570036054347318208190888378541712870373221243768369187680815073125443260042632706583442889512094709099098625961294147828282187926754293466200002491513229610823170492895787125692888785800219563449709187597208505795212770848579259053807121907420772880090595675996092452273452221837402172026311049274644540500426345481217781700357609171396258241950624063849827679035261749890022782045957118273618824785748026222498410697042518563670646792196695018126591964092697307014764260651297488664034219458052548442652903742509106786532954885339801663891131356432922829250335429748933816632807431294929283944743815875481835543506205017481705346951047520427458279618814377084813162144243796082926879014683519218860462617834158343477684305965504912216996495689588179414745793704068049318566928687156854612387885224161269903833952672019270720244429085784338545375213607031884626382591183199762946792803705113096833483365426363484512456295594367292724151818783214649830399348002095041879748165559279895203162850603994902114565237082742287976695398346023296566192680839191603949021109466716378217744420402915589451894906848129640377948201169020885476997768485686821524051792144781135913135548493729304555631435051176648201464572883872851906267397323413520440119801513204050672418734617337686144834200499293280689556602523125635258691223987380593324447744345112471035510148224560750058243099544290870345126685271572004307174346290899715090955487036458527937517096176038925339253836307509205589472785737022088222517693565448189769864850240433601156669201582742310845331792005329315944553805077434487306246586765936524511647962229519279832212082283212692997450565236865584737004768720032445888712065444643581038355867061316715630159212225089179466033711548282859064684367461594147750534171121219046516376009383481115924144722780958875387606005239438268007114151523914316108030150124716113492663860904345223038577447882592909896400148316796099759785817224841044762771233920167400235860076590498058073613961304461354038374122651033124834408378837156890197343538580470331342354637273052648869951655466298904960034762194758977411138525055976648565240017036314319794274637402536767227435103608987011900025373474987156859417426438830814138338722873083749316960946236469416280838568855570975612497123436121027975994232408823228516751592519439959009700878817024738485726381527825906336867109457709373645424878621453159108159697443344658980094721518163206525049024004627060520743693206959804855637451474175455729297888107781572576867693056691592865981743336702732401738189065472403743204171855401341070699255858149605621794038148154081853962685730159803124747686274764484217121921712926758729333047606069438191339091229974622681237638083421012849876628201870586267199377633250201996578700200790835338225396805455332451380423029751488329027510864188112271261653310295647621699256859218719471341523953003796016158051066459925173594060643606880640535587754993186748092058554486188285059817921582696504075502148115314600344281179429327367379883906363041825532394584557690902213666952803183402712834937243798125051273679705052106332496208339763083461169096729603314073162175597857177052900090432256523258849790263444083322049894471183769783248110426230901505786227029559541271133996146759919356016785548486720842015200367835490355235372518396642898565423842424606457146037934707098437907401521674017684127175318228973685749789899034238377010324845258360434890315614504682893823266066159160285613103036991064090971876752683790834011921167164193058280206273322941678349522351134272533928675360544497097816406048226617686554425674260203241801735596478113235027706394630397317138312546436455659793242485784413503002585429631155755435621524298789564374206978551448633818643639498587838829576642018277961366274921562907060959413300548901568612428379658380234529998799201227356878659484733446200585872547348263782491652434308567821302432118014148031220775771924009028887708039942555593066745184600120559486961560072893079084567246293394883999754014349310576868267513247069670145892909469184364728152862837456499476949945690750534618427792022400645380978354529667232502684985909617025064660467107488651993711470501617907202039970075645423421169270811675353897863234106224139826753551058028504516627159352760035900365987864189373755151325512444331458937286856930336923723419359040376600227524976384484626001688889194092851279994345130566718027482769989393586749461422788219312568999838889403652561925015799926773466307623580589295665476651110606837431371394497821329080971097098459368684560206619500855772656603919583123908176119229752919191843005312429827992494628430500435471869690936385904506669445685463532960007606136569645786831463865624402009215461276416864190454688493338243644685514763656441710565053172565905119589621546277662283250387926427355734758337564221909155820493213240154931110605870335866903395036956792442480020389480907915107448396281716789550550137205312354443451950470404317102768718656489396809335574183883984109746002096982380982095332575249450330637726826563407754273101884006817750822142446020069107284623828069781590599342012052162473134388482794465896605045978272816792987629321729519255938061701355190085580417255302848432574986566863470986072875747664112477790475002424627982279476739900922859422584226066940492882403983520250376160415996819875366948335279624348633560385655101190580914167896923088748772578369865676658330584784147917358219217886157631460682821008754557533080079568854129004664607930870038797790719713660529598979617433401054259923830172221561989948235390793257347495783651382019654684826944711819906884689492679931566213212064751169346709723360622282461755337482083990342839663112366386480231524005843306908752405600444221939706897879103035465783361496138729072630120285321841971749134085422064397758156174487018686993465140962231367950019571147239422582121837370821167816331741501213509555952737985197852087182983651798991648510592962474685757385042634942128850902686733144145283877012799058228479255506988217098782384337138759228320275662991070586831911693330225631682032721734952750829073716582079971049810530991068420908724348069105744811078627144609299286730953185943859267513403392917243928877135353998013661244778036740734733722301876729216838597594463959724019958606694361557275429039500058147755080390245080605647053987551512916662669632240669474035256039304283949916889400885223734728541929373736582564169694054303856845706816430940135911974741126716861782934774665659533518896787068627845942180392020460943063712275997246533288094842354412569681375756363629097447407117417682483391846961856726561370537134274237030001793598580631583887210801878049399894664110560824945546517943415908893367691646000323360074382966546371776833719009907460457372701968543787135576583611190329109094785378242321440244109001419648573970382673159867735445768252331538101519369676920587112948717039973392064701548862600399687667461518776703899391774394909860985656130371008869043282247504947169399213965862171082827224056759642402503189527402369498145551038627703884043348511209629491953450983337481823905473185095649462319306555494897113561225693354704373570960075723291488005023321368344189988948806649428204309958985299289985069319909233395820948406730957487786314948884797456547828286810453820445362864831799898161555744767379628625627880975851120661708057859814100228754586032644140037262518627395953338395074295814563500776024790303008999538068883322826797361458620108932266532200027917440671175126157627753281190863538396959720240107141728929092407103588792610261498040734964845678394415677279799958013802901427997434200190892365896214538436310798576995348519793477762290544801252108593838603924966694629190312986794123039469245941089555821728772649675335158480367130070936863374962331291189202880162146140738143701600495985122148454619842742117801769088493411936183586025761586779998418390219361114029648850025199472029578856565946758516937996699572325940483566197783679084040254670609707395540752143091532692670658386463196531314886108776699013438350746089705523563532051600185567697913032503600224388268804269387107711654925024383036177677033892657175554424489514463635648688904566024813243068703223423042522718263241831252928818039837817837467968153963086400160615835612513738803784711047121268047769449097953959959332250632984141727051678178179705163075506920403114949762291299734828407247178365863839505064769196250394959908558243407624620248376717363966324406281535093729778343627107484422467857467588476066047469390643908044700755404959276476125867930035189335483300753452827444124347669016857614212135370356880550895375282681299672963614899706114964772741057706933315391420669083831938457822524444403159848974885142170904520629110097752715581844938310461759096614507038319719216074194475794610249112446805210607757160354146301206749340103858266980945830273660193775086406853622882728500157342706189276427103540920238090754509355618913841884242173101524130544851073505434964124908008294202247983655362803038536920888283460207296542690716601529105188940029208276678954327595283807480982753735399257940186499130375791349559792731084454823718342229469814940289209531238108472780631973379898195160195121704869272500828894324184028373401379016259374319669582217780136959384496853585965450090587652670953960403062416975891872894259154465327726705477741795520453703078681682924290225853785974544596606217854590494873561972146659329725423533158892075596249595103035878661552383416317550641913483289901880507618880793585525080994865008366738554075068751390396090318564644035297383844830577513368517595754141232524616048758967208300226736732985427972570980137586119990494391938236708277705628403684316402455046878879786839004382536237135735832117241900600802848837694865203612890115479188409016620098373947283819322227845847240006424360066245555489835299390839486891685906871217925712644895327467647541772626021256451154792911684711862478539753838617415600398048030680801197067065843248862891522833590708499435380132695692317783638260532581475160091816267815819620627939577117972126063518497941961740766838212197210234033899328003739963467683694790725249984093123966541128078820844883343518968493839815703339014485336616369900445516426926273983958218377753337864262247658513888799675564511954337912828658175390591688637913142351438807500920251870731634832202556619666290142603718688198038316882497272766040079020052531754667956186963289579928142038024711263293032362772276223831199042394786249405099700330862971178818017369645751916218245360236823782860164066137223559446667101712827699884208634428734883466596252589460226472685425122685713851055178954209628510513824349756932017717719507828207444553036231146708329861890366931070892638591262949034773407927189127029389896406117853716155259316930117974321997530258058275998552023952466495757956259390498981619158062130704016168142411134624993236648003649746499077554973371594121735144442204760527966873993276773472234257089307727430532496077103358545425270193364605002345374129087299792494780426039468197708640044110289750906749036910652415124035927661165059004747380457432786218651659361715581291898104494392206476239138812259012256667022847172147669224129323909642074362475654495718955162079767887345710610900792799952993354130683025760609118691550431698896746373419891017310368742997507336111258501003484104148270059107586474293513065030265663229975999254837958345535103603193839203231387407458396060524468951454575273750516167580868306710772425152442881911517268882255462799711243757587035578087877984647084423481624661010876556730130040199097570596179297576292765379520851803159852849600621378678786183192459689397893083564793073909609025051532179502947830547534011331216911326681475740478223181510773065749287436089184198229216301815032565926557474068758241473882475030150711267022464541455189479085749904235494640081668284696027695368927400827467884038231281627697518119803313196785708029872673038034424392254998325721410982311783483978539449186653023608013462716121166271566726833652291388376606306921161928195298696512072673671191885912845047092998385886571382096788244449916690456400599126672937288424535277635781069027461338057890066555838940892227903141122795076641556176030089478734152964886204052953059605870267294305644215260667985710845212916706154135455714002982122777916718884764486645986278524580939877628752605028427613453046449675970649986083527828122999546928341167676866215610217131426324677141989294738565531121114201296610986070075264095658172810143850678440279766292760913186363973129788501688973383223670157462198483456198460602809965567566368436923141122689314514146696501660801101758988967696432506864446790132577675453624822999549179614524912077742866194470033790857417956169506550511708748058760296996277277316233953270211561888205352100454489031580930363499103934945482709684133220464089134303155574108442655718139510625680886056795994744671869536950690476379404005743765112371381336349595870255736787136575060600796707205107913107509504627886358414355962085994524559602648898872954661442830961668563429718143172816354663423932003886097049127293028112702037479899525464997668206562841528826586835355078792341866192415887181190237045244641747999394951249230332787475684599229081200759369848847569437925880001263143677056776876602344284575934629913384740210314999674928982964234018189089859486170497032999204449460710491252348718929196748920013653131246073823365771049430258536810568191040755268058988582613922981258521140212589203302093358599467981930926685327989923251592313043422589366528782113303031343104877702790678522846480392126927397353296604090658515067037916848904819204332293137726983736571521460389201703925852966554108111622153722744317380183198610946114782564422250273327728522626556219910273840241936581887637172593828806980666469319505579161316115217529625883606083416065371301464512582477926840856328279921896681281674753908816022487635252989116257615481896280885343542525069027466107501004243420839984893105449316897444081249875343968040083026658908042788834131877435953657062172519891375965047476450564488014733064804378294250559278833455432703191760174175204035837007553229259741317018999350722860661080000642953676788700088719017737426291036528197255289225215102361362952780519975211038541046194114400145992302460675323420939900167608021015140699253849258320112620771957676092878503099013430781098818575791291665376615790446453200705999970626681183782026049419147523740415581923334267210971013421281225321779289043201915145517061703524152871621390007586717085987610039356578706895123225209104902968760178834472818595996189713094938713182293515666045941661385841381853673980058559648049688614554609213273731611897354267165250677469043414348976385124237311769109711119104038279698205022984481201342261990807339841556269255546640200991423688501744865038304651681013384477346897211299664636869941930575205856706004918611214216501419213765510621080838605775542956479805225549162567855796402625553974665642015214065297061986905644158921919430366539323600295453943117802661778003215012333415010698407945015164966178524892365075841040945021069452352881214270032807375498893039975466215572065152275478305569575939557384232354323385219879729399129078558864376832990996920859869251911559341614343380784489152659282429232308419150642511770886776113766657737616700590759818116612632109138707312377507548522999114431670722448201809303464030680045275407192963415832293287868320641267489954636690257395541588341689485449681882193499276356629749606046033585405654720525092762607603385705058072233671359869696703131390704824192734571661290772068900110933932542977489575816429515469095741177978876371157075963783911469386408823282620922568591269137498766760363260239288533187435740062132735617436577065063246148921825410470368754862502506438777022483872947997191481163889665090074771354923777303241311495309244080339096733964127566519594580646288864381695887727555286208919923457446623723478310532490031020450734783829893936437336750889887425421183272131838328720032726366077636148813233526748157850282116800331843088842666339541347411228717242057928395263443311279189490908128104666274674910248009739199761334356583427180650204601897290621657839322850628387928934821989715956375529758971481637068271538972429689510596385262993502059582761898286483926046078138287528073366945935352502175707332720684470821258153984340437174549113606848325224962377727085763272558832829595383281569054216509670267071046928908510487494253809066282951207491724246974022912125952345788758323904190036439101737195953562979226101920706977234704171494337736981512459270279678048870688185831807456451814072616184297750324359661343772275987401652474594572274017658165314307012494962855032727340881285784960237794630045552946486241239504641694473188369046537872850708872177559952348351737321452855930852371604826622479092476663308237959692517047685238168169549840921372124956013035206202790105540298048989721865796732220389888520744064324580433431321111747769699216059043764388842337276080754346283210154763666774049342383041884338698366527893522258503259223776737060240202968657479077393212872470320515828913723663281366780939534300135213717032447191243057420214784445118614227914724066306408035395343748646870430788675611011861591191129137462071010734154287204128573021858291210887059494354304331229177845837899589800837299248609984356281634277534242487497832185891868883017097998794858771341939009927620446474623472313455005883608212286454365089407170930122353576079960627309477703881360720302464804959277748507187619160044899546298015904268827978456766541036415995378807990674400904763111641684370131555898487707518176985566716892965365558005126605499937039802523065498969064809512631187558735059280463956667107707701689647185653148281681771405862992301911999650896452491845913094668048522063819958290595626978713012557055120750667058387631415637439889811975377120635002155577611823490006395448645604083213975980539150648588642274306155837755253767756020006306299060805372339830609083059795151319253738112911485330651613266850133825896582906039214928018028868549223022204596739501038349016840553319266295001854067169806801833674732744199655538322461943521184997434337663286431030000331674620042200386326071787261775160578328015154984165087140993477951426185898468804792311402925370061300507218186084979070064763519217561754773787220462109914884682367162050244357759972855238402961183528095514530352390928467117801992293895142099758221916743222158617357003226762350386047100189979370625830059835231441474863800358926624820912278729040828675020410808875360614797106866904324300939415361869452962685241670581692794417064133237288626622726446823296257319210229173335385548975990481348002972645164797499703671782896493794292866319290011500939365774525868337895576090240308169863855236009368360859478954840578297574925774049791004163956472881855316061753097710411488011148934821927699975161712681000123004374773097337917774619907318764089127637053698513523325545045193475824993824331851991048447681829133283802276904497895370150755271800153596936063887001010055977625341993508988460761939705778544196621270769163854391352254702353226872411365427986953699089808131899992333305335280258422054253286215524105354764282102167153741680518369345126594268517578376021740614509817881127335044534004210805036738082137694154451951193918671613227455873114657722692408408644904159173710620868257413015634814066351317637711094987694725051903256497689677441389614379726581680553512661706189517070540374164493990740508143390242311210597939930003888254502979504766609294453456337012823232651917128210307634185829856447733508499514976700143726368618548875385641871264183226640990119462188009818814974217431398924301341639996337037401395094950673114324066672493464244321692477030901988915233249960116247818742549597115889874119631911073875009934574747028474459176227518854904582100686097166400796706757462422675482809369399306315809061373893840374676022973971126045258697407386901726722992710808996917962719423611948823338916052742732002797857296993209003478283884957931635206536829536637047551408493857142912426409094818339516873403602681072684862174187329409414411740483923601523016212824424463118383263505358792895497720774492977544606531272775979396459156677938256906888964076806316317768763592045786276532337084134168417064791137529621387408164889940705968269296743836235425159106373263764175841406966219455294271687147845033274725252092510180996194357007724286373445600233190894840181529458312763284118038732701069286652664896121707244929361451388094788340555470958354737702221805991425037859214903436707756671288144639256243790587673342100124494127760857587008058300989432071459527435749949042168367536330574157614639592376096126083206307034046321970356229342486269416860691363241260251716671539508906640157982397314918601031681752219242349886709585602967577614054445123948311098354768514334953794984646564543737033208074014563925110641567865959231970052590459512388434539401598332516940601933530562561171741440152627412614746096155786313125140606110097351397676490791859947587418172016556568183988783355496735271301304042911802270855021861935905558614753476838756663154569198181338012014062482755163823410375893811011502232218618831204602643964137181177305605551231989632683823462939239945512384111014492467386524139736820595271728858782206175999393363300906904696813100794187530363411984643685386156288605683127481663267113831642179060846161737618807669305247623482595862945968259371025395954701464773009746619670776138097981311653405185152160311536646954315432867831325482931338203518293807980550762351332820850925333489539246190684029724908432356113998134536231356044316736248225259856455641124626717246927206965994623264576851745802169795444897558377793865381256359469764763204171542829873507171067480683743409562033336019152497606527018905188619583567372580487314941935564280593619495665789136778133233223801187405200185359703485028577077262380934760934447340924063602885516819056656465211438631793141919050752713207645827665732065408954359443158993209784650459580261195204606420200299352921953023347928886612202040081424991670009030728953610783571210247532717468268661539924025320792476085744937471595468153753549646958178644743252070845669508968784520415202638962524575639115335069994513553759691938533226667421626616672749349805880023370554335836573044081589485549736321929390129177303543137385421356138655557354750215352396433939860350968446824454357823146315187224116768496580932003032834560926037971271132681603958122235718925879183903528054913178987304684785422829634244337084086141817402514560489964795661187787124380157313301313049698833793725988830236449717408475506399459962417666843411894481734438671368514704884048379007978239344821080025450754661411084478448587954247929331892259141063738292668600309271915884040494679118652249756658747458519071529370630475578545693512593688355237744567833147074405365709586010633568272115304745804296958048221819153161156612587892911666866298041566558952614961312516523117237599011276371579268160840386822697121862375070395596474471685110649503959930948813776149024703888534264935634517607772867752240825834004062325910189715788260163676012017173833036832013257350046119464032517103773382167617837182447603732087112316158249457240383348068668577802802058788222180730007922569504697210667528391128054123748141560543794521835335098964714407925498976055768557652448169982240141634194341475620715927040571614690997737705859487049549536546084901350512207692574031110077276032596423778845122922145394904642046321432767427669531413909060661320941451912037862873791697272918931276223835936798856559301188799868117910728195451408506617930461617702631390616271015458360382919350628262736417125791493845252478873010400358899829517681694522197869278470601117899687169122821989481993063555541234635786186340249607085810268569803115419417571389276475098899940177078285136310891192223044680580680278636458290351455923082385658245433585308488150727944900446148335470754725725276392989454136764699275222785630452917464026994373346909313803033545911260530078258137537512955463261862645731220679536199775074290184915571848062568781288523152183365995507215305136914374129334819008783700419550270904463262794784164612375372654223991420877286404203000008888615221837291145663383391583881832319162663441084762923348642243865651407307925079877393858521528233439980027138347880365441378179116961900493783143671126035963662856408878302881276390050829475537391023859602757892401807208092287304441856900572227844796350633428695574615446215359943413793020937899321407694062934423350749245414478254919376495971666142967571283774870274397157671188163649771777196090851391422343519316415006183033127402378956206088894976728354770456796412927960928754698986035883980984290083903880070445451765158952289734383440666076856935821434528930741286937074466076753697066814270653290120883253709292367788958846014799608293549302036101489930542182745390229250596188582401896989129478912529125977932981588736663488987635184024865855486117021662920165715266520029912888900682333998251734197634751119291155318302218745558906474380565662693050764219645411942330100190754733417018166126539609208932316993471257260176310574818654852317757842355047831679129701586858338814140824311049884489300912030222367164562229458428634768122079356576945416329566235307983856862814043743726412302651214954053513401318456131652466182830985435585714568258294752126615177603347576426004474486482569190129734167360463027670922948235506571435168634476227264063329379630799005615565329343628257313524126842387330301236993712059910210132606431754039934531036901291108397456805714523176211347421099116035986192878373553993802866196230736398760012890189310231308787557471465345091377081990839833750421017092455870076505391525923563268612725706771688653239599562304644951604587762663952882439739645962186938168358287423962699900498344355624022724736773949312896928020568549688597526976143320040163412792042576539419875337047987224759441000141968633026030858036140165696832914916415850627468768223822294639307044535181301049198527469011754182956321126634503089472283662522286302762711336045616357629847504715248811463336093536243233500656145765595501245124569163250640219953242546355295341350993410982776896186968774567393767410398488798572638278933528788692757384591219343568773284703045465965855791268384694422854403738519157405614817264781554136376135916496181626947904041081151690435080072806449149527953722247933660349072974132414306394556726881131262226971147653748247782243408756941913010487091754774268888218592482417853397659501793085798371609711137098480057879815021524607183124561197135902844825845811006601793682595179262609499498205267936540175181689422851543447458732757404154752616547445545068856730451960854011546379870160650417810902828952202768617822418623755375576162357163912285476143004083545151307452808610884726901235047178599764282782577176805740613508015600801893411425474172804302404726863058005822990915550043041320645785188801145824989600429772554975841642508719577316557847431252821029446603005075485636126888249758081754746775781059441548028330644820588296042282420191981718756484540082376293402113880133288069724219790003385935244861041791953990660594385773452909503050347884134017556056159559653200794193633738729241635410832427560686688771666302667415994830599913853830890196631572582920240485427388843797084133163977216793763686332924973110225880943225987351459231656803604451678444650549262636820018456923212306786932779701697070453779543104171032164561762923626381648475155631767566539638801766828210793912573764532165792287971306695983631285343903340349393590607814169797262395519440638982091430929030044745411320756842551248316809624644497295966574463330732884638378907717391204890120161248359655389791738537893902647776357429349580143750992521412307544381462396415198705871163465558360430016895313447528459181103280498558891692501534030734805788309205365882704087837587319636363400106439404625853005758309782467883833099913230707229245027989985494317380597549315022483996500201375272922888685348046341627199788718219051821834570985972247657865836376912586497241072871502619332418567887808024666952262071868606008007262733335571337928367816670067598786240240414463615193762144929715120837796164797358785789951397770758838355892014009544303639079871003206892158830565273852114866539165052448564684084604793124995986358457180685358393769463650432134622510385293297156482233907609304612819078532922588841466588837590722619365549629969822589651466510740310762886994943342933907096608528447195892499583446526199825693110381690234987877604915861399854505465658759244570349302979916192773957507754220567391805042044554637012981892707301802097251235021151755083829927535922689111511854952253222667367134673528429807465315896556588988966295373825364256320415391672781905128268412344948766799183504712125706219458410679567070262194832061107843998782984771580841439394118321998830768619801965364227606285345030792461716434718449124591279192655358627198545551606387468633856263535830291794773272203314602072074819509780745824690787229918754595600520469845843181605535635723286728500740706945047963455982847334171063208080984286375328678997286850790512128538519934150285999978399354907182981728049024946047640577678063040707666269720833216382812944078207215362220067069976621434607492243107995632544422330286852347283295477107510698660240013006272300257548494507014600721259365730179174018390067423652349781595340776024878400795317042256633940551558413079846118611624743992606175416558448752506021097418987018904038676187589433801937937141000650349153404963949603267744533533029414525725421082131937761661734822993781183703586877544308416491416460178362317801203102772415543580460232921530363858534944481662211255549992056129604628673685773712562265517809250533482154951772622520679389830409498532156789976215382263322874787771757508953064614390377026110071058794321869436222765843999335678823524520471543695257908972493043483163031571169558178820856155143074279724351054784218166461934232790461616679354659876607487381893048560564645088633140157013181445877137125794085979549692854311509066748015121978803676604418132564189185855724051092428136381233809096825298436752689973199498315278946243825299350535764454846071099599312964886117828128802612893110061380016801445390680836508193372486546215447846305148473589908825599361123390207128272470763210581895378441341034708880573978478914307437508908321290393311761934959933944846185883743744305861790125095324718589482231034450931808960731282408953068933247074062702854283195945637437872258864615225814872924878811370940224692812180945467842793330074739249026423333647993969057029745329096172198691546569794290124957574865872418610792995832471575421979545265363134889797007412491317267338014295335708186471020946010842998511119137289424690478585443762957504425532104462951530789233642260296585309738247424715810005971595597571613216486551331605122050749297676606314491907245685562609007909951674055733608540708608028658097113875740304047459417582488438222219045389048137096960163379996224548862620026536066855585803613551568851447082942305439182197998804626286323149753865692954646099442904375209777142323882008254287674554416968122909316430852728929172691822226924187535652936175598062198996610636113071248981013246022889235306010785172044490572878057127014248401346923180926348899750927690125072012010799789107600840992662475332244810244879704228681670140325925359412336474800636275384784828680751854406538611913878339468023717006805940779095438617589413201605851639230556790122462190882277552285790421015053032714233796485819027796757596719311638977530939012430330869645347695155739909789259155235194524055279250673308739103393343587880784571862255921860539900709288784927593836892019787324864764934005172685277387306382357033718298832882032920273988111500441218978210222356350625886701192037670633040739136443118354637656950407029568649533180411970350767771059711915723493610060459658205619537405489798402839387212125820818851768631787028031002769660935989963943984869238232779569294703487872670715200121782664516146810171297615011778827917500566907894760930449659325634216726016493893768891103121415193674946012767261047795822003448894448266433276003267717756015403066742317291962474578667195130084802174592578376372951415191343710690844525737783826832738404276433663078629757746451061634375267573633352305152165407596973126509693409082442773551403057537771380096140599408653492324114346884476544258223701614270836291550506377775510267551156369289877486656677100343351428811732673904061464612185893878243559426453286164872138538699772969647873160943399209868758568206931835039880273194297614249000615921382502965042294693401750309435737744463632239575851930877261925909809578739592212835575308740573508720127955066793461946462416183134957563096075004196471803354765572279972332165664861617567647942492505106339979781317575007129106754689328900041441514482207005375607662530474134806081669019599489779605405419740637507029035797828681467755363417206878922393112856856775114457430370473689853076233937725516191098711302353828888227850450974865714946873658218561161576039584429347640564746626748193727635440186870364493246210055387015604802173995794505995762513532494938778209460847167952611781588586752042355380962380563822183301827662914219648139110968499180611917704059554996346573567204877881372671572436333918918525250589413328860090927002707255125911497471937557094245639926012298436080907983498172434183649446623957316588750889989724373226751011595427590194627418737114220805461685646891964241540014880352009841506834033356002455056980391747245220324569824088940464206068113655190000654970286738713242809029625112716413546685505041719955872530670271861175783683784038021062521466760520236565388939268814370209604450656185931401351787374056831137606389200355343143101277235182836536880711219999072302994007019812029278787676525153427789834770472843649015225078908399289413735233661541527320504907008390845856293393557429230413048403217135358954783252640667062263732215240010348894197344249695261167435375104605232599147228126245478240819927084719067357704147948044911888714085180307589927805621650840527084055200811500271561115618071806435996821663881766818264358008978762451618949257868404943092942583340468467225437356440366551797101916391097566693504449257435063323491781569613230210360780686548493187654410046062637209334387681005104742921242823447259607640103117934241406339028472871694357266591890543626838171409886811272778889234905112915515875750226022917748161015595754421170267242093667195358351366155573666400190949791532740699712271767938694063937215914538075137890855469898151839016494162836629890440161914772052233621155825588978407958082165205458368432197149256128174448499966931338275867011969084631881760283790484804198305571334450833101947727107673522280182971806773204445799353512498683570994446675893056189970050941980520041834280571279471743460750628051401139965240263109477485490328288817836778172889046132159389848861248501227905834821173683138910475094034864515539671875800539484144510468876091276757275160184233691219996552462148986045334103118853063724646390729830971741331465589853874714307217529664084902923639313928177439409889072272765964122241979745972431769993733264427480221189216729196836664334143215696052794356487502079243648468346549636257332352792842932210102542381697467179977663098880120762519260320172418568756351778955902113286239858400911451235504665665704505108297514413060395798428986989138892630470527756673610815310897772245712766964224697524867930716512347525405719909274444894564174564848736483405060912432800114352244545348974074856403358405625786283413907130537379824404793977042360721210561411317178960816673902729224401008172035020468584124023139209348525319433536764735541600233762541675990814003356522184803399998991000169602057944253546891719538744888754022285361921410497985550913661142994139480786313826412962219314118687097085767023277365740259435860770975004935940518487368234180395116809017119392394135481756792096503682834174709554359890051950646957946897371676160056773945376726197880136284220762483973846094349334081197939618069619957139970540552372991340937870563606711366795297976876099821258490112197079002633546798154736386488302995586964731095656331268932742327388745016374461999454556990936716677630009226284124696935193943516362134982136140694817942832261734972432459316559869289631584186136891432983027455698827501254146019336213948437403920609961083384945783490596050653462265319551943941412987632838387892407389568258110601576083300761753934208281181478836318672785019670095493564961813229193363674215298844712033805720647598312718430468547380474117938791983180802245228331173428392362998736043826349509396939187584551399504065516651848779990268163844207267980909380066440690972745881733244021746672726355589119296437833497408616821926648542628638092838076846401067199565584043862318881684789765450352447663028111902472462991908725907374510086035161366718605332277846160247742179581625332225194743272635441033182161505507635674065933497319295249579412075301712641204655612341154319673165342822203059415774129837932905914402582814415477443063444290482265976674850015345553230799023164802245429854151348903127468820767599618334402814190753612744438372939829690733283091557960315884736612056419992832792529439473768653384209457948871912337043737781723526989230086487515455157785163088542187497189346486112760433855886018231942141089785166069791088781959901981291969728564159469869010584966357289477601283930166640759152595168539819619631739209590939355801479587961149323194020947388884176252504229660812242487781946941366243384979621390963957753134002638154115665525787458606709207698183185820890319339081929228133461546472852385717228332884388853638691650115105715028759651989814554823549726082839631286505797255958612844581889229196429327659973188941243544621718680155264736032914718509042182187136732416814874050000757232105098426356482707227733674530330877749172923933672168776866246257763327147315153265860326804428758510460476038886534412183142173250896454151113656954622607492738958580178844466552144547463918592804354794997106722622796575256065951977145344821525641472246426596128090089728262203834668603340016050453085304126711588302871259699264650972537609134743474790106078322366863059528006058987970916895597048330667823296821154801404163278492738721897026023310280615529703005604801891213070133878384572265092929376682001954233003176651032919221898691476769741057825361373763346018920627779783831691600441347050170095028441757074622604248460671071386734298387014378484312708002312448905317932027245164454200762388266097769787238128529775711228119822524012203772027236486282873520385936971976670019801857196029210902358283299038594083321388855327405451918383409629314396111314825825918628443812203287552827042363290383251654939257354736831039082517334380328750730429114353836495220431185811342964961140527730598269454609644787541347770997924186304589232314205691690048028565700349910436601082027517010681158621031891685491395922255431412153441590352521911357568194428922964101786184937493303679083231952528887503215592023407018162087183929983118444311640004915831026320561037494466461782741987411281909357310631505364264529120969486149640810385320884375861104175139967451758502773405441881219954543812457222132552670494879104224206884896240991812975533993624248162310519000283520090784867462625050464462199521704934064059979992134075342245689746083571437829705620357380637469978736405731473474677770740480371816877073060099728927051063370059976889784087017471273707342917340387373768547718477495537645722561732903271779145292853821088313815803259715740150967438451467754154386085980977039371409815678522193825038949627069227911280890754617998774031469307269963257751209821739069545093752801105469205576679461785344778474694029636631497503518672144640951339390966701696449322636732000589191545028631935299801223783833402579340336371099559960376666682477038903315362639768620389141649368034349543061681166076833858431485650133341322223135807286160407161331863244614664399720065236160113973164437103599402424485924558559263227893439618699135847615142240558631917612397984954968892639941288338861479809965280358511181548208228661312007296694470950200437826517740459528277236877261447842266008545468704799185944069282627364595864635996520047316692364843227450096811488418299000179540633582237616562343966205082305751444427087739043491567868189202731727186819401594102387413815351225332134704531901420794997908524065734157778634370850740957546353414905687298944398719214694095610075952504605373458744107241531818849176865136421186433745316398861332196520448636650695830148223619920350682408430900030701755352915849380636470217886568916869186274635893646645206987720805438103875713172971513928660506610607006232337218804011425172608465076794104335218111604545916167270223272019002320147451363382323725389251726440335822880247059749389558025697696978219920426197665155797938737891961171476138366689880653074136992253141010165561085335316494775326236587677728056632340269601464164613337706132951480992776221142072651584438919634545356522126893488381019100936287489340091166141550865039256902568125050976029145465731011816188455864892552692429507382481610495309560714561631677297039728979757291377064097339816193819739482296589520721040975992807115711695012845335158093609720394564381647378938712063104466609077345142253161193821394742590514406348033281208483662160650253514990998453840942520554870602269735665124857859762412790635030942341625840268453019414257885129474313889746471786312966498200138078915019756458353228942298255226209849229446574664795483740264932537089649668633119068615273077560845255597305399100601514554893308797537656931169807319560184700502669526327312207020267609316725349893698452210048493624734791621373307743748130455776648381309022630342738232548775678266090676998477334946831022395951187870061802769268445843747457873198438820647728812407552167679494171751183228245062943483964127599698491522539458624226414719553057849418425056683694917020104108408229847729654797895375657263539527381854745959493928454692788123744124447471073305448658769236869206563056271675889161724081392527009082796986400969154510295663496421207283651222787847070297437482828773766142628051285347935254598012898255903899405275838426634339984549780075219011040935571006691922425309939958975654035759692854956450949872791992592287831928753197514231506274302806222742761806111692153680763171079590544134386742038640564923115584037666882423162487874139384731072433363343061801314267586699934284750854035002839441226791271144664417145961437217262823332760138703316274629259639372233694895001555191539765941620613857757102890467396493126966451489120838008863732346451666585479915288806702273551438879832715220553138662254829012336008443121144658126577247814695335758991354177461138623221805606743557601978426863051838940868337627990274549302552168653868627854932342204070456277285768169908079583646812807720875371345258564180303064192366898554038940500819728199349618562858592689216594362400025164370135944398372486248654195770581923006096879242767787440887115729954504982475136020532716278329146385491411386361222066899626410854992320291039735978738284022347455515740352935092441478306068897847936437410899579682256856654949029852409192021498071928260465241053730904803011295279894036022106389240779065031771991232218744693899283642903558786259835628533061139358521412315542519968427529680290372164538466847072661883303884803396687633532815436619623693934636952614152551423551146119849391320114171690095982386993664327673189102976895565985412861379632026580091164693502875202003805630297901075310343359595761914418080630928540515479975886716782071193615988147815461739909068728787251516598438346218117927692367438430604656047075063112656987829585389363190209813533517313094061340405159575550437190557315317288694663180662604544070468383215851125958683697792090846380817655561413285624466899159766424299939578985613635978394815626632165735511886601884164948309670446520371766806996409729949874132386173732701631986977402562574312150126309093007193100520878163641235099240534717873294878307138281568851523998255023148837027403330582902594218404707444702102453182897257447385645984912046201265784559160528339048804548892759265636848176363877051445335635266155102091036584078783002976169866537684486948342655181194338903492719290470311173383406195978058096020538258329490821025641688663393689517046840275995173573278882706112210751239350865590017517371139059872400335268315354581772083677506599037736383859171355123020705977249622762991941911212809138025678263708423678841128933570363307375622362599537351493536481315601292836470006035167257579604822503522048976796173682838888632391499343000039751246189595149645295567943604457059942220590314404368910637388338587245519667624474428947582031407014039004359235937424850611336777373844752481896638592428406667528957632212934007229381593824779820333695533548335483632593072975931230560090059588277892147883242172462242489703758691681392600026864567617761324087912460859650780477558757337413236238217777772688055201951101655297533444413401871414657206180671083707567629262950997431837932423610953159789952327277514852271564273973596787116112932377757226703181722835585473039757089464813042028733353516325238108669294186932185379866659544559500584646632053085557736627078960791074869262761035901879905085147793949271034455242454875806059664726898150194092796972334348359589189504893537340576156981485629278343807928119823984197905540747785752999896053308860728217243229112330707749714066524075870308764841716554584361341263905057570567137550983065353191378862066286227483594091355038074031973526948759319815460393765465863076371239984303674428765045944172663379118076245696213801767754233897559861407742562065921891206043873845590751084036090580816752005056804712362061729477315707575880806822071312844904553600580164086258745498391253170707881210432577566886669452763404605873811030570832952261458502348934448168952119744163749216381261590369149946767462085586489359720400402520027972925839134491278521043966333875379672400425009424913903374218581091673401887401957230384428498861789326579343688034917736842480056584953523358812077152254081951080245056186490665454325821550398233673527202384823811902896008940461668574728090261102393606528936552557465785496348075796890844336486663296386813525383124672125837348068303845910227030130725124599279710091675638629288940837290160730338572786383582002462815898861571700032996859947542637288794882627178162061985720549589477623268601637119723004309076372368256849045090158627800129778769693652235882037492854827893072342635557999980751072794607148610666495509090778216635878086395420447534702060634896291065482874041999554064298049248348058362455820738145063150764390703748551007618803529525748632327718460505229842922116213258453415058150551207306214304437536747602778270340925321496371437122895824729068313869294019477065288713067282005589187972047673993628597815723505664596507563636698016342812060303017271474277888464080208067591341941200262591193608327717523160341654795161694407250775820499623764598877083486637168045410021608508375293036381465792302603188328694271074006295891904041319686607824121397122072458320091069378198290824690600684519716801115080089153521516848340982959450258992798064609119798726698288579072831820814632530398652710999394651886991029907375470229481224085186662750338221789523162279278631202347501701771233220717091922593534757938022888880175402165827752502061044070062828422041765657011005427423733634705718391978941172303309806123446699428650422194215867765338724635020842201799517566839029385097003406545191396057906922002111053426395946231252253819106776568086219899645857331097672822046893500219938718840238873903045305040229241942116235216537102426851513266157640851140952309855412134183692080577452302806709324041759114725341234035237237982585710608793557290851536036003168723790747710840667092160550596729778509426341995413331917238271645229782815619513188619224230929618540420100496304011159840486367933671538720281937242478271809495056044833351378677470847042686837214243011921966729889739929833893189706021168348774571553613628353770397248912339127836875834456095004344335695590354891392384503798266379758782251859226364597841162283697459516423202686492370887683487797316076013871403807951076902291464395996378992329119435200840369580094801870746799012783144469447942634985770919550376212879347602436545373518019313605890046196092159783816871972449005382506016328872193238594654718922866476739551381121731736228879708523612067384316668470419422822942440290228120766180034003351283364966663893405651852051566629168283404848709023749696217626669839274345062138371788352169071333625012780545406855041417882519059768814997494954597739522903534708735880211396722826031496076183290710585127161743329882652780255252428279825792072187916232885243684803659416376416494675551748746384307755099376574766933250433825784241513982138819385103590756348647415997352664019948168721917846038194897660523760698226708752603144696172851438584767111042933912583187494186099675483911386600195483825703646085730466749670113067559247860493381404108357425715827668305135675656190887977013213030351129665032915900008487215358954660683581168170052817258076956534335583195582001056786391042438006120089426692282254978306628444078612995162086230119027417042691802797845906515894170255346603031338217120944827516577098078330392041326683431397310329428477913380014196558495991877385279693970800834765176016997457945876047490754730466094398687187978484375350771907294586999717517037471343879753479570931334826891404050489039080179960053317929941344545540188195751250543606508111923328465191549437429954084334069538262085241937260885980164914559217226056338817554158383147030008138967242668582873368390012384009282369051995202266236178777822460499582945270418523774659634254390190159982456868201091148319964817369482646537008152913691943573798277459705557053202300932299656617051270089276392832143704595523653814991547011221176551290975745708212694700365801672716109765847899149601667043298361358201171494007703999563263943542862762688841794160713183160801335812544141526515924082511267632291193419123442129127777997397202240974799093862199474796429257385471289914528918154342060013760875457379230954421631646611829643056549547125997340785848560235896838344128992695839352113871607544547170758185445498908755344690076189000308170580233390687223748920287509698459787478290756327158555137288283418143638423662514811974927549964715434147995116986156099808737390109793616590253633593818414742350321412167778250363304451740076857913940612747471300445705778581461204776585313875402543513393815903624418465549201010051583439825878393715163608177641546776821378068782825461722103253255648481676337550906632788122282745676554726612290491024294877775526887137835195253805558155217664795526098829203728745511331759349067396369381523108082804385541442086696543809513512507232156999316499902580367048830572995910171618592772566240320574063979984853053579072084463024245202436231889085282443909959676474068271459713221329034958383681007377762355940383966528330730505118078975342319619418379779805229341224223694828876650043780354010450086170056758945653404645772417862010425176867007609282376834032181387664804621019669389772019414964631387277866910898637889589292693072203609264164956456875802717513435027069451159564380727049198741110434086827014315961715664959265987824059769289790740735289032158937500480781912197184359203146212114846713718209076829594570746177024198017627531647064443098193523313021298764188265483485784312259574313202500328734335143698196731552870631940479843480893894765827972597671652752339731243038510370455747272128248300558172068963519863019001247555616875231149817244444506557034561272199672523654806457510153818045311439516305802768472742142604871578397238325664496670333632942881301631461673158716641485331155517129064575916324528496087556931370232096251592433479259063393325201358328557649023291039847316452701675161777701411939725352456417632840520896233702254278465898959984778292202888045976315905531692642690485939338503554306183480946892066421139912256488767278037200066607862519143982081147408262031225652498118099331062722954915129810745201459576662879000890493622566835221001018773098221095346063311377202981362588941019275678390586544101493407570461493318779162521305687791093492859992831423257159091660872205632781261093157116322782528736537445756697255387598607597511019312496907642654591327529062675730324183644205988228286940464213682983728493265960899098581864444876298409930300198316380990960604514264963987238513194221320716985016072127589310228790871583023032297580972243993252473035374038082676931402573947325306143870699741452233325519277777883359464655557969073317613736918057835128503332297934203920098025348589896236515027001183933964697310060271825733386611823860081312521313568892342913426343740991613612307065550467900525684024451773207281852130146743954048113348173747915255754565711055376959845080478156826305527293745636117313286176677465328937253145942937371622558732347590291150324481881167475866211225942645590680865740534998814874396292936716221076458325890395176051658140237676781132974075779217118272732063999326580326721874122727802645187807379031463923111846214788269041616210101280146985007114739353853740885264121897418445889406020800518030126137660587625083583455542066357682135308232105450702404221893929164516898150972567733618010881298507428569251611935729735013478950266904150336338882004383599966523886006785644411945664329325372172266142450071321231472805741566467754441797826929759374024775982891428598729588120129875548070001467016620215711330934849665844173291035396133171013333601892253292418571636804830655746803505834995680489124083751183252307994336167609965733213253387150852338594082448057396525148199307789922538615954790202358516623075446520901831118287937782302886908017183919372571765627403940519443320003295961468704793289115359531180238660161842791105027316979166546363620413229354748169578991841935385620618345482714859523418797312165597050290350103400066060965688825095316127393899375777355415722064798782858132092860804505608743097864210240437959679910257139594984072551425015829650027376334581744427836010447610642836783945880835905412365810959832402253021075387531955628474468374692780625227486439226406118514820918299264747175849355311815640437293259592284656241212810134724424034540215097312649052894747931779739443727667045824221884612234018562221958268300306131867545688389140686250142229122170702490761350897788743238195113396765939048217833767996930549557080553049035484635100470827438751684524785757087844930254556622510836425125252616808673073821575226741141206334087904878139684547234483920113765405439843685145003702017878805930357661264583610923726594119462706576396198536806448722515344341063115823944626745682453706002497055491170767168577708786778699855814342209282634897112387485232910297095637094287843248197219414551128634414656439183173007030405154998496608581008018466999374863956476102570288182889301791313694156150388647292309443716425553496711005145403254226167897312003403479536536492056575771851919938067989468919672544178831644294970694714861067080554313338699006052045071102058534249585806255771689495705045046431245390112559277634067742676347589926257661360369430803584041380090513144913085879053969583128260432938940969347345057535394843653944296412990344644799188237392334273984699650963791157993892340007093201238844219797898748023687758709245188981000391123742807810306884124096743089312530740158605581071897947661151117827201511933098187019630898382747751061727152798715160611475294474319433226879590644777745726637898086486269734136456820336106718439817142633579697330966763405413295121976926930475478537337027418451612701742866775923171035822067986596332052778040099366612713722562220692260931766686082919579400463300829407651418291861328161204851223872045674967860787304955601278524262409256870467435928332834391118812234869256589906775340282149297405222212282611761623339775221235675749508444683124833474595049960830673321373114307423488279068807325446531940441208994507325220344440046172467741087209260134678444344366945810057779519380779953659889530504166620338516708199039869166744383932488557025239623164363466037688176325256858922405577494141478964251637972827205668838768085479802666800271905530053751965461782725777936468295061953310169245241443656119189407226267024759786596231569972127533183561436518211229563442200805119032050700241959501710073859276559885882677200238278278916302528812515173336456973582842939372946030724626758672024387204050892760987614108694319675113112212041550051962591870376563951685631642838001012327071274442806885060937163781574206526885385103880364805073287902870143795870034331084532307743263180369007715327417075765030995970990677982175463829127202995755648369342402918227851834378214243801677510392368546761904875780446267179987035956107427886336437435958570979092562952688054073514500401246928613295793221872556536466147772272261688957225503690856078991811303297268857514407726361413584505185293748965961447891044105637889291798043400732597053848940353563185862655212287382368633773051761149484523629903709687803244429683830325132796087910802530741628093622611844096543590901779017899104988461924444143560158520130893701399357139357763746287475831775785509361746084931273261782236120582445240363806859869799110428460349791188145070194137826380490764561681784044813227776223250143121256395656336882596271324861209345922314283579849152761057694152129569007064778063803118265389328680786460032446322684652002555163910458792159666394651591240996398176227527339067690193802658631797561058892920086009086322590851034119084949350503211154640518107215570364307817883445847336656398990817129810302314776860712829524625853953629251819068649491452039022529453006573909610111465709838647533080455650757003552920548886686100589291351555751014029645922719156533977224909108264288747176670308497725030049440009334618387884309553754698275146581990693733536938208218088488403880776279289504492824076743694162504418664012171618919770677322219521257602028217486975040258896176020911289555765864651126253126956260949913753876473530503872358114180790130158170991717297088998951873933944067299753346505963576594019448359170440818509967179082359883473958776068916241730474507620776956931261771824286465987523456783296124761919694961068437138838856776907042394063329518266796743307746810320873390329603114712238474453672246753680572235974918961328288088320978498245979942686432059320658744994066013556616118982232243692292665077174575917891159926186341689315863894264372864973836929631146075186124925595202359095520073447932643331427515085160396488547961781062353633439872760722966808834457978554760097056643185958568088215910561139654942654145446307718375359413448424870875491870590020689807336572979097765195314869917708156117632234648591413718469878550878583366465842615788808283737540199071918541638349126990490566053199135934573392956146930959447137747812271426070321386506299391304963143298608454857531382240557541056195187095196903198399928753960016597846544425992446203893721023435441664831456682710189289308454004216018303999984471001296821578291199633389988517759286099368130086254794420714700286919986613421338015751508895551524048499830736055916551111465618232928212456394552507985671565378344925368619133065588385101805260492385230672278209983426080157843777008650041184369537178091474114864369917423622357632811382945884121043734150496692884833541074221525192119805441952433873184935600448972942935210977646138076109558179322338638178464478681714501129228227754394879115150367085089005197953628620741157660970678533561787470436697870232160050069639075512872927254034801438611842588316731707933726151659026942662394451498597314808214912981197919412145254347670549942741930225524085292191478118957262377003058224415811020302676240693760637307669228570614669109461078660666155467244792490206303234299371968176886515597687053538586260455921450616216796940752871186404301133329466086318958587691629065129570366640788933454018497008241689570680148527228634197511623242191047086594012521724239077419514742205801958861264902896494172803255152534163635831917120925605578517430203739588941177104635284919980913658505636058058945395894735960700349312525187170601699202944322186744289304173167260562202375097065163327573442305026882855355810253690527524455124067884021557638248759887126354559509358039879800279517668478452111142377619234726662848135616848660909263155103844497719010489863769515168751743765404198051299499145836344827767940961399627065754129746002131948722355885524054536497483657808655373946281404308653577240841146481800021222003389432072546228243857102195429190705019898478208177433999783285565590622039439276779557507687186465720109332694877473098023845779932195769895230682404443397226933980610160065863293358233295950487526740128899041466215638568321131176430491626728136333448036391485733231980006630261434132176124951548984509840099819099845237867572190615637208367158271934836947846477180581605847474790248309976186940909154944755832012570908954174293206411145286652270523492326482735508756031545347065438308241296072955502857773256355775425909269848025212613825611217975076885029878339024828038993132621887253013651063516944796981275910936840049143617102781690594294292074877472258576368906419978785455201922344199026554490483528797486593114507909101325578433983513465658065084975603278769619863050388419785367964761531988072901076953828209095564683663075171626267544672992998626099002604047759829229063721107626809335798671566820751962302723519579239374024422728944574024124117209335877575031393209988935020125449360384199990481040923243315239749567116764336426117633775784514879133163927527536612166178911125331484090488734017808062184324822686035539931486875934413418002608308904463829463284497666212307964122244675324380243624394734757898690939671107491187015668968387975981505820458158445457520823574199626750583564078278013221200806552759992449491088031986051780416060248505755379879451620183293481681438086217589530085897096262465734205906531529546128719236113664988475049819882638229059135938454297100188119888907894440333862040645712881383473734264430825016709270634974386857040659660960886713548081296246595327665141162611520642669230091535749600635605473917283807182101774680910463234662606881147138836598616448847133434258730126094457803591593545999241016543802240092533718742198197248966444480061336185719852620738896519792773998763249055932377128584440322451117262134798697919351746941111044897815097114625545215782319623014381947216860422618753976704298361983719846086487025291741956840508388184348891351412072485041196521165792544855104643552737578761098606549745247196291592146452980879752833568732368949555751147591116343920956181220067497713695371851441788094372863175949804687296253778111744167059993503737041236236110680863047110804234795703761569730618494849563268184353820897114988225367652433718693858001449781052636362175014609483565843645203214593891596550402651475576692103175036085047088339899605773357521394047784211678720203945051378096474818050468301901535895652555667939071018771039110511761958770383544619264200288046539367691918853206697748322586226132346822544336051822983181412039677094750931349878625144494835282693584955180129254177757806069497711128399162441094102123170328653319111830159094655280088995292047854467356202860931923718109627573569935088038438183747879287166015882231525266073925714943310669205605085221077719536453582913473924097152196895167121135654034028283228641129896078076009434521444962785031681225129477382088075157657107352640550805899217600161821770502644836044471987209810902464880572385338367248440742867803896808146014235447380471864806924013897111092499294595620712110037723155059398446359718393302064237099531349622035527807065349638510488526642244612848057112064097406531543470878275722627191604821371633223338685618748491801608130058149728416340218684828867321568972562857914870488958256162809871719772393078848839935755399830115338865412806382514943696141621488163482326239621014497897565187245353698000913315437372138197474433642923374770401559781310464388727183841373900757340200788150712032662365671966948661782791403764613271841243718648606952085790434959695457158083722558595678746814681187955261014764040669363956335102894815590889337424458176148816000727395266028403137634525489918837679962529312830520094725431380768154051720773498707569160516936158044139107494506455834425855097425404465232214647141755816862207096257571563313908259187505375004917357571081853351414921604749056123285862946001581430321626778943647513619992528884976599128502300639250075019031964812910233009612604846468840082378445150607001532965115968849893776941505897838187596348872711478899373282360565812871244137860748899787162753254192326313123190293096905162361055977675960407020255956998360620508722663284881267844273675597644774447512438937780155261090365329861469891868832393289918254808238045613541891502137835883658973427410748477486947940100351387907910806107517412736006939406354054870414035458450203719009431363753505386555243793391152976672576373171388462838101365733880473333956208689810273264778457952968251264158688685312152725266195406111952472726558445330994779378852003249681143701234857805466014701845175247284845491417723977259257001556115957437299066717615627305317043866760901976965956186480911493562725107181772119891255871338162916728456059008969275865676100326040579475304027005248595124893694588171597339985369464750145031016085600387136525629371636693987837779677173848663461018574335183368796091606025932069789981443695109912847393610734514117474096665710510783281668222053301577971087492407427891908719912971379506187050370214416836764619983678369010321099999664127706014855236964832012868045820427353496065709956930313652601191469931377837652837683086289402325079569034565942660800759432816942165511471463515483916016539680750923388315907666129168537132154922656128549353055515252990476828718594024647272577453595179548951383088107037007333570857294166087900000281124050332421975139440025843843660053343863474608949598206198458420525807382107841789269606519325214837209189035806823515551770763490726061660792291581252634547861206601653072191416857337611977830395848412261344754093724166225270821958529326059014314918525836196771024261356488268206271373885350782254712585450498627955898666139985025307083856328996372102665769572482811963929598911829386595726370728128990248569511433047941608573238225001028971910745081166202594219106272294403437437585016991370834383771158432796431468878834119306742229511636918835253397171925556901102541838093113170774904734120731528200867065320307982099452690035207381894163140963166825663444439038497213220672350571304931114515286246289612373757315553725266107985884451479211916200555457383257171233257629522469919658929390079160594187257398676973805471869181099297295571827232947711279565865970294854257200356492419251393134180093037352215145964697223427180240107245258584760413835467371203664508506645041434494071699301106495925868468199275181269099987044819740824914388701612738314105768350424020363324095911101559321056297024549463565499905258428845845096092568546976684643403615505896977860686665459376937689600602937593876392361476735575234416685238610938965285525629807793936704780323679090127308185754056792455166595271323147249106888488185315011395845113728817728384902566006881738455687354680066784087907774651120959253083537225976263667695568924115041033532614202962011509351210561767595255561865891900968505368318458345944639333484237817475717769595039306355433933948140964987411521540194334918258119364817306128012345214940626613958648862325589921924865332125376793253573606973001160801527537800607246137849089148750487337055927181153168454707918604703744996316764661811775983660661466683742839222803407267904789871147557661073707525141158449076224970471739230496658436572926126627220596484538488418723406264453896979247569403727701822118808493208049968930802924721924851368931347880446970084854380699837003318732377021231188328313460551397431076806922208083460722858475693600798812487824337485881723864037957899509278494049777571033417209170762690787683667441376523021334219273021268143754201392847953966331689747298692884262833883642120627732286121522796691126814403177742884280538373225524486478219337402140549174028751275013713604594211642208767534947332066929360153065541974797403651423511046446391577027008631721664929970131777027951052428274395134961163591768984841878500102592517826124509824881304467996807316000864601596701769781961318478009337278885280991759070480921540254303410540945277285979821836285329990771509183323820206829994576462133343317299279206810862566362466980577735942677148439890148130917852840082808686428395397667432565403517110842692795510174338988034414562546172261900782998664009574723853786076253433356149677983645488414496063758782917158264104087894960457582063280257709037140183318731248399991803939559287461619900048549832573638674894085508377063070001203290675985567631683006515362424636801461468362972029949365370555340031774887704748029375725071343792688803435425623779835899274582201885856930659487502853991425659404255843225413795465313246741925166471345367728785748291188561250122620680718755146355866379670583519615276920066260915366668861906444002609402879788691866025145475055684765987953260707953909755273218504134909521055834368192331576350259579283417106288235256177875149394232458122646502698450172209182135338819112402334930086478481831172058278089365172587478668378705097476512871799578573767151342853302718616033899074053732763297829696716509278976875808820673009594085914480460868986413365560021772955289123887459747650783739677741727479121010365470392593608122288319549114461071567935303833865874876144201713394692637876856043010609436535329447651381134951385935545481931732049597142801019359033562219374232320995146322682995180182551477758512829881983597239493618930800244336670226015888397066912583868172893173545423241298358200157566608125215745197576581179893861504933093882914881684192982488469091695483768381330657926426878115232749743944377379471787469865425687792364636212275805589094159337848347784241573139076907583121668035578663108072164576631059995124681907194304488738141957339278575796348455987057558707720637319005404995868441654365988294072923665793963741138825683410411037601108156640606759763248457778485165383643395167638835435790702833934284294969602257811942746507173845799147520838176375271685603657896661416730345116482899093485090359814750466200482823394803189454473337635958625856718954893425750949368786887694887216555176750973498426081444210729540553679929441158620734850575218086941544860680481575715587952216559260089462467996123656119220608723177249218431754230687873192096302480661118957088482168864218827041683398642981292132053992959986138596193988756029305543907395350927241248175470858640433967142297889074079610923458205963882002224674358372455384252708959381858049558415602853893680527663185803511759594976569993174441538768534996705256489382250042216213449345305723423471421233108426987578532392321670214259560346859449280894619313346732451391229576102225369564372693817362609266984927818002469217110518775187162932511247341517373486890389699146187649396315954413746176340815432501637021196146237992319468679156994318815950660334823091708186451495726947668818194914543010415780603061946918888620896874847923999820084474070794034080782924839770198496806497086290908213047782694329241021590614810868738404498421857932430363982979233870028997384843962367738665173527248393456313607204685852674222294505440711144038665631865465867570081175824093938154908904907642471027687179070529149328604486546296978554250255779597385092652351031896306794262787306915254267598066161991208622861551285011746059199871903119579239687596397404029887477873238327563796894187439432401367462366442736577022427114479569593710605095901906305366497465811280354347869483782545189921076904615291223437685165493233474277823170510026535591256754018336114126299797744283123581874981304189174036601429863901832159654031370319450184823367329123569087386495794719686105946211792470578154446021665104539908615817458725973500571022451579373191011902436013117160003632222151806386935510727842618427829842758241744799005656642743449555446812554444190642976044789707428779988737346007590341217562608784471689422151089813983301482846514594931290747438024103507905273269100043152413101151552306780057304875864036633845992266629112706594292801441100886096772443130470117718444874432600005587267429762196450154882391471341013641511856936272762837454677826955186042313790241710657048062561554842591190938881722917501201942650045656603535242936450441026112408194719559467152555977183492183413706540583641407012696199671865765342426681797979403779279048424309631717564155499118149760735991996796620732909365075196999151306578174326975095938631452091257881034424958886080326017099636954707122194699862037948799334388020649866151369451915656340424900402026952929983909625773785901210947563740553357047870190035986100668921352582183205510899420542299995395756907907927360603290162764153503523848110879899694782496062693311396363834500150174171587621867810440670093146574249674783563707374487734043111319118981896214942046685961879900753848684103760356368105220325197264304383997090863640181191586474109202767820883195296182402247280086604119328074058532167475179316265202759948737132303133137901924135485048072331165521212612137575951150992230200664617869605201583190026570751573993631561323074308791586338068599429181797378919537129654290876828824967172040742527010162466991975974774529622116210505273397494343308798260481261406523997498956412366807233186817488968322070703590161333690075577534383096657875084560066623052777234907622114630465109251347278769027370832182023840023860565264691887270440190210855180967119599516159109679922149951451794262849040563685960745800393789178576048295162728065454716202213009241948708912529155678552751355912412106513718063393459116963375450806439089274690290191324350363320574605523072601218083819756590428169166216415673753708661257604684689168404569642051938349136852181695846708877528139805955621422061392502059832859700150626776770083183539809719543344304858526464330234676844058549680453253054340749000420178354934119824738612017182720856010436421316440553246512004622661847945177814506581004572630717831471380692543394094132513054940320236134443899925325231631152096294609153021884261028878972031789134435448984257557477063926469473201672240185643578854840459959618241227811645576987395477025481715265414023562911024018289256077277850181960963778458278998233344143083559377078649717459024005808354641937092303369986700750278867594996025613483503436960598074700261484854972363447865225114606831963515211715144931918599633287423522876986127419546089455333368881312283537572600304650546432134119608617421107995136450467662443623061721830319920998689768970722980499870893661882818591438338264085946790789009466485048854974024483620370791858256538578755329009178050313369387578363060221260295153318840955075624413748011551075129887894718321131127891533844108904178209843181442960019947642309480708888222150026408534157484989428314880405996165655253726977960651197568611774622688561617819842251334366291596240729056643775482548696712879984223297389741012700046438474116051745676696675997948974890506025089176347477162080191702389350600745295284052134616980231347986850195058336835520746528240603613738856692259573027738214891680159324215934598928242300127372483082925170372939912859532290808292382837272607425605993676682896419645628509868078837059020834086264259896058783400689876014362898783982951719062068407709512223582317267366682040850348300484673641105254104523664923828882151494009651324807266662869393301833205137430603344431258971874323092981018190920885002283407968340239199069206806579237604853857691717428882167605565017841128616900985493290786269239255661495103750115206361217888441026132964373176362635528133541698354055525942587713951007881425712165228457699512556193376078909461585634681944352933405109359609470850660375787336520195032744925139080880835113266236425421354096077857136947332364744286980526677178271249317619643090612873667889401321905535375258588245684376960614413734022368344912121303716320265960207215131593537575007803133453574334764955371776740336188136450197889994360826155707611591588055602251039539547558188896222474745194749365300931516236066859685484375383767755450595465151573670224476079534222690892936013126358947524451312117994752632159048388935465507906551758379153984813985778741286648366341782861785042303717483293189286577694729119482207225525103310367792909753735264903926667027780123663722790930693359032713715486144771805542731403703106783874817868065444058729293442461143360140414698815108368366155061270380442883876824225162134843802141638599706640055257260012715046632535521222585563074454806519606077742277943306464310820755663695032475181653740880884701315615223336616919499807717962493290026571147772400254297851079303001821505799763159408127546015617332564532524094913816236758746458300083079439648963947096583991598659335019892790342908733489704564020024626821426746795030451201602120502108885888434008111525257798637967668710800322746598283622628772357190398973914888022911132246164182118422601194373876985681740330280795297610984093122326840376567429332723987098536925141666028709875412041367188169867778895765850712630675597120836477232795016973409232259531411586100115264308044559558480383173605141307032484373551263488429108303491368665144187048495942128315464139345921978830773454879123186476738317117283245857453939439504691469436318199825170591601362737111499099233726409354874118128560359279060320856676237214965200264052023538347623085244995069570181117751374596885690834858861332272720690034361015770765867217206556251648001829697681534667416760369127160015893821924284747607577478189590922184439300710167843172224100213887107353463011201421279892769122368635053276660787329160258832569543803689542334954645916951321707790262557017974935898993924597569590140694846622011386714669096072639362539978540724324193143675039207108102125892428119804254167767854186624173011820786621871563569812000926427897873809422761175196732950559488840124193041612093949668335328757170948302177740763140023314386961233138305916733442121944616348410512576836759558036144067514310943566791035561039458301594140139145950420420429040966426178175418708853606934904076908286025301286311746338186323120113027914641893725118327790374248386305801531243455664933449045944494614568298112046681632689029474292650659254300536257923179379352554933093863088935443702030342829356043687822964690092790140447706042665768780659519401643262584740186712328208213812525957728756494111347531821873226265082907605743743993567289016634941398529541846402592164905635035761006557965504514097807446271067625535495841062029394575848891646488751114998324080242327722565075294291046322903527853493183668779381012699677481530053074012722806447265303042343068082907173532228860071823300730547814288096285103057749176319753646560215885212101248615733454720242170878220066509516660451226480667337241162557768821777697256794770913999045420207463218168898645416044982493350732988123758867202693495665473194756215761467411166013305698394119429648794421285395709834787979875444068258676227109485736614970768955433028632321070334512201829705930230475125280633612136147969999878507708199375267152649544383945019507066902536136377518973095165328960067737778953167564603977101605774842776576900264728839477185772534519706653676019247029609835948637781657518626319924059069393326338668256894188945338407582505822957693744050979771206745798867199775590672456053295827615468922046222691672450818818541308527636196564914698390677196805148785033330347280609030018359288901866695231168822399327527383254998417739121086120794982853672802032331285599353605484522618816753186998179542800266086076320853327387995194527553841903931991964764993847056951182528454664980926968211237030135270477366706889507277403143718634277791712822538910546115691782324513693091457984702322498379628148251324378748358921874994481247812470078885373606008352464051825282125462273956623755033591246706261173194827142067978006142822757664749845208177246899517913000919281575616823534274587464473068047845675339563547649360185356139809889890006400420967847980852140767666882473618786724132829772546562248786539556223307380811749691286753354322908355741638038523529048853812144759286407265281219228711430036526857775232447666359444635256796269077924359001769479463932160599783227028167580514986999339219107037540348170215448116136759353748004796146226512085342222973943553881944283493955679757796107035110340633345761405551984537375948456681143582056716482280011029663118149139045442338098406897106152506281341306756267942990197304786424446809674484434123112582481610679911079432870674080422696085057575826478844061824108360095966520507482625802401954448436296026979600019235395362162433163336048136777353442106077508771845717651750923759930779550351976351246540614768039158732385759731947908166723581145678153851114679390185396681258819065381202393047593603619589016783730279571720358864670957685436603993731117312883000071939499177387750822390070766211503432472234997813195921913706816981109544861589264068355629852498123939965211816687882181245645394375983155751367235513154735718101081256984720349569259436926606039527217831157672825315933215117851552577888704316699986133492658951606173106659987271405648368539505354594166975417938374009446740204699695206475628126385833835125090356083341150676304014279956152528525383349336331546442018202886698823654997887262769893548391813084194257948330700598035286758962840219822651853379593399506088818465796164219799196235410380065725091543606522107208660375136517144859043581447621288304648891706845817783037141249433691560929117542208685089955178635185135044958056491124550136351235952409429585423970264084447164248307994714948149021979278411552979541876226438286016334369767641363559318621280487587280726082515273667668607433534312753400752702810623979028577888071458970960024178775733943429517112465481345992571587924067099531676408319258053972719955824660053148716990945785189858024984976974238096011508979873202724114151774672721020101605952646966593257403066760141883588372664690794956111409035072945729685118743090038923625798479506801362431340159461999348475617373440789969767346461206919639857809999552556839994378187645618033766406253020461592439276041338974867483851897094669465182450759636996718959094906540865735421352041022465272529795256552163714663473681905070491042707321848981761688026953346939266546098122362594275584137864353913445170741977488306491107199074725456124636810480111497947558339703219259683276676372548413183081298627987228361046443706456294270777719277082208178419465898160724385722112762853712500992387747440214267892249431284238710987589711630382989874340310259155934728955494259594214803588096028326048567260029788235300841365771834052110935427869946713722248404005176335922023165175572381426873946421697153374890889367795063670903850856545889118484754072478298063310291670083561759989802168829759952177142746261609720060167340691962198207792838329126582904019769571715053265808663929295354891859282848456140991449560402962833957573817057219729571829071254660899998052528532370999387964437589664405286345774858907669372121948951980260429997120556865432239324585648295721232448062639835155422617915280897161195126490589245060435881223704810037117983489962329157907442762258139224333220364617516734914388207618866957889787626155435653974637294614674837579256280419433175134300838742010535919664653597748052721691073593979976249695742946929616317003124279986129862131749122072869472649450885934003922361702217222947909300663322772871774503211896895692450934371045310766821672069413563854525593896622731364520627067803255271376053446291374042944811373861926179261378365889550614614680018832411291491781910096548953676073045906248308157455484573634227682653740428888335995470787625035798561724029068532847891182158002583776159636717892194827775410819309464279323564772809191758317493673233993403259843958953577715556617706306192675730568874768224610358069791487572144158415117671896656436479052250036409072293285995886699820575678118244349445238610137966672358484604966091778197148874809210592745606259634204691371864187450612887735097373415379666813268135982012606565735744146805549121117141622673617979545337573223304016131120935601317048114422474161344221457807508763788666262675076630142264741784233356959365636716801654916123705576669122552880456205078116908622782649931634735741832908172553463464884370593479686886561055785243316245464448412374202791684812101231351117089507500293504001535320891699680998694681781259813936539704042398035015027128390569741171271101569214072057498286695039802963851269765544929575189964306799755654603960379238049307425928082984853341910807164338263444344019122161277603616348318013668426588865164439903382688282543060837590661066771237107170204530855929352022532766942502332391855276155123145130573434755013534165121371590161206697561778397298572398398227102841779848791936130766633732895549992371585465763185373099507443261847492317736526723840261131553396539718173499305073712656257261417407601708756279831275730161332398494620214917966808360896734924426978216037714822227529249437357974694191696088538066775578996958425306805867203671443940456154278564383852425558589610760132412238037264536168646818059278961233855247406114631999493697019852703613669797630099158149719370510056147805349164468600001137202898684910542210680266278269534344751079032986572886037715148219036673106139150485245659211560374397999334176809759242791368043167936576836762290434275012737261172905137119417038440633548393233051421367110417889579840825934047374794944900098316490773527578814792939577469680375600721303073259457733949244321611198155915718606726531052164456110669669586207465123504375036748196692719040539770355022948868700219310786973885269846415435301018185844833223835386535656952126380227659244723972062917125615898926148155114662106274717033635146407090729765370987688199525079197905796128886587683648235068762090450321953761616533374620230105582620933762036541622150282660038864709429151487918482419169365554358310317419747819304007583559580222563120768676845581380979929609827365857865398548778875317360956376447194455127065316157980671858960678108108829301791055468483704594003060734167269916929743404404396564155818476337217648855575307201123164931058264221252720193573309756135364968694665068270501409545876198957174312112617866869582568061857191637730098456987200495310439398327154795926301457564445763441737589274194136850734750719477214976993744417114993208030562753897777108717982901147000718710418139860506072393292246356965826727498928683418203501601502940814159559569389915058583090881476051746051767468865874397253546333168789127096731782931158607545555819087793999557943472414506041741508264784723331299217583399147023206202071192136863639390318362253339139035111122069329290872017289449541674111407504519217904729054519430137425488125532353297457022242966611319693229345004524045204386520377805698563841992871293235139643980909217967814110184159134930494546243155452814644981715735250249360655745317199022994345509723326348244270254778835925225284313976721119293614798017062976249039702855445586308640544447385168453675500095491847589525812818097903766682002543345323331946990452678834001926284005149271583876445057257716163585420348066941111344084894642225141146067856956180824583118493864281407408649028196989867794567422989842097306452678450354524803835704172863033513528057251660703990273263740076228114611941909663638930104931713653762112422644757144759518019250104684154866788558145269697753245208360954153638539597789328064522186730429977994052120380474508613159469802335685163765561581846599921639126057140989587402618247339582052367763774279351203444346567036524535023481079156161508223593320931600270469191167818121521392891363839483434623393556949456085081425627116033065388629472668476237098963683966460077856803856606073054645920230477925303318722116247578775648051542928075266800509345637506945527469062512540857421549825152884161598879091540620881262717067956194485712684773347432025248377378523649213249625764130855542221613398326026703910029471820941981672837573693421637176816499935225489734827539478078388787911805264409042604280178934237560562675414098150710101977762177485411203118392321416329644743451055248956694056473408139822486382319190667482096278990719618614527539395210226301574740421183048196928845871960968899282210405449590365993072073400171356968053505818297882031413397893241135968148107676920630462579444315411605157527959174374727280685235223288730500774530956853080975089735176962314060685324459540097535651948658889058850058838423449007165356843046700295298194163109939787645096669224219755355293549940821533135477502355721481381583043187861210412697708691219359702773754677529127747067575970937999258563466520578015388948894718013908980673519953955655910171445299347938796186081814221285449599331565904915132851424769833753970399452928365664969585395973094123553326618397089475676230995977721256299490257322135136998398401697723747112768622869627157708755832379314881633142474444112364749270876601776449534627708789766947246837385476239699215443108481769239392319349975765065866839569511476489368016177440970537608777145516305873062082885456678232124946398249956835853280991588547330007095146195571264880507451670979964596225833113550186148285312925433834904213133478068870519121752397452886691607911925956961532957564691086927510953296947601806765715317241465011336968654249062358559552264728639083749479872128418067425196658039502570624071858503621716614381229056149154041221258508909065761833093706814876447315701446609761876400087477901467072928027258889725919395910233201949953550201498251320233395487167253106763958262254451404215371227302841252190238466095232393257524789376581250592636136819196953579491149426717017503414665994262399396539900976357020971860549127610214031071206373089322802355953279701511921696569133921492228491233982429073659662037692735152900144402617913633474623325359109979740425838053110952762131888337577232756856399111402089458273180013498670642637502806535328398439456247278410247924536765815076631869199634291087782836861954909624911712851823685120990283389254632801224278260729521609521639394311210834674909706160621058655100281990865426718422857407408864946279611208277884932397996547968970346969211340897637334071561468742189724605037164494537727010213333876308794329958365171640157565476069355956714967213220944508897814922126434650138234020536204606488116487711655829365196557703651410858216119002562172632993221726987010939512220811430780978810993597056420684472722346326465257079225534871348401205452430548183032988987424841781493299567586438674190062719181700853589437905837855314833766611952248557282115001515034551507835974359975039978077533627265398548386013889859713149873860369331635478154031989232149891465956386766494995870562048310741610554722283195933561509346917908882424991787935817055395677451191417268274867651995991797698945128381414335411205108820402286345704852105226352710831457221508930841963356816910883499118394779570114477335810892169229621680831086989816440674377321661383753102746322081333132943830789581531968278495124012743224216431561051056327766037126382039743383944037563927832670815083541702835529589144167983441772464959129144446996538665585123289026752330583437863878886637328339937289687300980297774841915945944669051387397835950979888558197049148212827026420148603421488815143453796891235150846618137683341521808148578860049747614031890795009559776260903986068149422140479457989914699048186254578251919029403860681086069625286836668932574814711480527370541810097526291165259858577998527285991753212524862727166378999790971862916668787928830629447864688209943911627338583011104190632068239872751041604282256303127239007148080335613028179436280435938679410754498415763914958675283754626782058761057161379356541507656034047132447739745205851843064342025175350404893967590258237532155148697130410691729131591552399700715036939087380196057150443883250946099257183366170156751033260559851897591200530376915515655689051876549452956562176278414976466005878156557226908544321122975774125622177311502207287271197288041231217221885113687679694672585368869412037469494764304262590277609613831584837707252789765258490337317469139441544907131120591701859597949499918127151856465797181334316388621747660929418031940100574336408656966593518715251178386278560281770280072863295438722007234647411857065808838156523217245291956035017715493915739870602916097475094437634060962190667790519141755995643876730574263269432053946289073881834472341432652336573732390544742357082263612741104371879973124160598142785910121969507796438384743018843963345794318428283974169632755324174654170786153674710881910701101316510890589923756160132894312495931571814458298758727202669776609999026794155783663013540543763441898094164701288730358679999507203622399547649322322167530946831814630248985970101146489633502672328922032352287833093554410257098056826290222583323352700970277999958227698986158974717965337576005325971852700425441867274829785592707170666484791904403298489657767656023549867066222812509962835719231226450333175679527475462557226344390367844870707247301648477841012441947195686937355010022126812583985776163452016671032163465187318356451732240020425322267031346145974659327218245527525679662855864872805256611166891074343819869167935764329441277400115678996031845553769915134383031926106203648641421359410323235235012285931200551371016350297233933497082030731124840396433036652224270488977936390779204695237707145810623822536409190932243660540393839149103540699770028476273878136434317522247934744942845116257433339775704308584608217027006684754687329138831609902717366356716414516904681373104520432484577019306252359251874263672856480665146823991806778689586889965412154565221640059888598163887628528838150015518629605543649338075410109148181566497257540688987757072614133245463855950071878763186298600329083327734519543475825004618709204715820492156838786241510900356786439436670194028383356330571074735103809460188068783850426672520882880946336248612832592161297575028501341866462322219892023643387377191681892894092820165298768803437016932168767201435022786987839039687394164869157486847895169873490119506445508824672831510421556445523182792208392549280429392014758449447900601077273464338556783174153242252227196111895578983016513037464527948823252515365601574051393083616756494451368043497904351679966910885714633498459416987648842702986009419162618886652936255759317898423854291325666673276547825819361120066520348356088413148427145860022286694884290305044099259700097359829094498865793331145233411981583653769710764588972923447039226944021726489241648795924133309416530693069491755235717858272765743487210588316377137979486708147210313967737373364886833755926991375462492823545112889961187544765101143726380227183409859511043365807928597168053339154176394503686982224402868045728333725433486549725983781016838640210395259390712354673951706620409549406491413868896234759569676352357761953651452461279864942781477278347666890883029628342886635675916573761396747997071948162241138920163735077439569199507889017458132984954439788427900900050232162559312992939956939692232068530865821268774262853855191228378917587069887953041218558079183131054788090217772511250855534645553069560114981698510149657803359098937703012959718662008531811580028083325005967124187986274213412573581196814401731581231044999775250486759852398821671654410499439847404711061896326180907877156242185946576579872597412404023861425782464908735665883422647600314749959595838046938078183638695804801361104088036138938212791352113346007607779296570964845922208416800764896816291761748458292265651579948807708799246185972608295935255510115138573868877961373376317133349551024649917281392371139508231556077196815551219791302000307297237311924007262537001767056582771236236207760752069579431896456827512253936578004140830816907535868780447043237486323901961759851452506841095066198428420405437029166078231889697975300920894042682954852764867429213556151526555034613882536581577053597767670466105452513631911175212451449419760980732483363390094861535574590155301925836264812823995401106506538881046252568154489305443935546233210835671386857538372776166684231150652607164163235171324255489268154065477907624225247834095151265317566283127357675118786900430586212901171517324216246616724945757936482364459375111273214722478321358609963086668126155899217259074624810465534328407377457555308313626630593130480916335362393215296003567628923374046268174561374418486094411882683144947344257762910138707217577791989826081455180965868458253618790175953974089438761277806282238550337690380857587452685522366745085985306789392806242967789673691570388120673463795030084361232010519178411822390097486253286688930298688206405043490077583413750975926654403165508407664438472332206184756745244753987121161260373200254194778024057897721150512602665632996082855968541237242101173975508352497419186446546010862811535674678314149110255336798701631704244932988876922440856931117036488630159972228365324853915248938161515945172801085728520347869779332016666426340998391275614406522531803721118593390827955508253665349771275143506382555784993397319579196163201157292852624339437176084353960522824679608344790535706722397805004678544571980538810793319732738893610626410300881055026202251235944047011726947326410418498359331979226668058109882727019176931981388330966055633514952910029936390545610938080658263942526057614864907877422140343122925166205834508353328960938750631210285003112696819159093839812764126738784564335998941842923395906200878944776956426191822994299132999754890420479942032674503302307081720779538705061963098087219845884246090833779104338178749346368233616547195739305089325837042353044283306412484196646029087476777593377031408769042149245350961186875463280677060302584811846599993322973320991888677130866675818764304981595108905106109096771336756948030570498661738600974482542995324325077464013213396375500929128108398093160253744931479348717609255791460166637204236325379913451386175854508205806393781210148882450159446744408834867388145164974400245907510177000791135525508238100584961920962665499171516857994942583032106759554165609962642504274038416551236986937938176458362251898405296766052471056289361520348740327455209889534476847251661820893690515391117985870680196025598623211295336978346839085605403782011815789119953225513778717639114612594323378267110114468285836805307085214083833042661470376707840524527230793758760678691275707504646754776725606149142188096179705211597410932830629264686006697461433639104890122488821568597796200147197771556287929036127832995843480696773633326819893330638032501689614966894882535668112571915139564608377163234027096227742276328835498388685228505440488648318303741172921567007453700029454402440873771422754427435097533546889901762217218948025755518306731663752506924263733061554230893464608064140425603587130543535569902453019480338081650560382794975476257677108108975976620614399792167692065400617490299222279431847131368150193853753200223453618577644446616960474543022656477913490985762732644766358304588985901584428320367357050236374802290300890126819701684935845305420102318496066979297106181205425351867208895083192535150576576912761130524398164078391980979992945003839714831062411402145864585087423553637242435920323938718206107794787021255121345927966563619445079684183959660909039690846942867530724874993997990815168636938037293071796994461836241477712977847542626796793863465002679298370480209281303201557760715369899308181126838725644538426913357128497356973971838390112800632541582648915468653381391371706479095315295530821412554709886165181655853633651275504206244147585037082525525724688343862763695162197178588863893566135884788798114483740504181374355427705535940089636291693403765197939407547296340403475707713692196151354101796601296900102168787407777798959803343136345277286523943190623550292772463856588276011717036967694094166154621399840775843658058696665163707975974036708211040636317721663738914717364281556748086429503025418272813413404304686657413669628402792047163445682104534384802914177034901147917064218463642986102195492994171124267425119682221588373055429527173704762305717735458751486879346440889392947978460455401991716576873823437389392729238906711350941273381427769250033081949822141696188029677658747807343691778640317662531041373134341372981100244987671935887600669462731678364124094915947253633551721090090052923181930209098008096559707688718639943868140649854901473094796998396505894044355588226201863423056878577822869809267884198899592849049947906668998204043556932505249070921573415528220952665925677187900036079751285762041155267993068570721141247763983828034289424619759353019719892851408585190288740572490593638796247123321580232942863931712875501053026229071825385622102243244096060714766978962899175754028264326155688981327312282168696498980038198081519338180920105929815100239108681682087579903221246350806148489460962660024821622100205585267018108610645324499036194038507876474033255133721577212604471587862811506716855095608656448428463145055287409561926790214648055960777748172195512432898139614577910217475970981770017021315684136318053359700203674983626851367961313789577013068724154722680647070598337093384896819546023126895180663830955876170110217652231401749026419714063827624614719861206055914073562103452494215650259937132148717874956792258168991220003972504952994180068678336120324393837498297256629859381280208785133821019032873531913166689633801643925825688820316088999834719754186668055053617732336327191360673190538493260515762103265765785155997953270688707109290993206259222290288044494182266839968986784766735119031127588719394956246892807022113132941817107750154207883276506971356823528319624802647475757219071687994045708245198498636425105171035654794459788231348468183586522589761263154602601373142308685652038772365143406878842210415807429866837894986558344357181968815133359130686508394640599016289106914517522513198250824233857625153807892183539660355938512797092764897086440308688151858078525762734241368740904764534821959280128710847422537610701595295162196462352554655568066341998009780860399672457500190815791887173734489132282832420449315730293164370943659580523575392646863516107101421010739319525691637689201601187574735188393840726937682807151890019561259757415205657853199669302978178255804650110656869179755511576117700986101718378235670835427821978518551853372720112691644528088012156127145325993809822914876490878433002517055248037610151025388844523055874671646625189165708439600162673381707546438703210199832938824463562462524928721494782207707684427117850694584291562051731652313086124871242323641128142766353759784041085671325226094311350857019895739615680253450387698934991547228558933529347643252841530091789140858764729427328284310928235432756962906897723794438495772120361628803487642438459228132074761060001074125530542843963178354761796949858264688037056370073779663540062690153049786940177461056700792438531441570825720346592858773294433798644433977085128241923808195639760058912195511713648468527717553078463748305365691816664869579968702521993152814788572871160264121115775370248357257505828132308865515983224653159222992509308931671976177046921573247110715846442803066433693990562640317940172408459051960687779163568139829116748294844186570375089687606711790774751195385035551672397403678713402113558345995957827655435972049237466956778237215812138813158805005068108079366887783799712688937461227846154588242794974899058966293422638877119009760077020031475772836683754838289069706166023316630262237322975184511677214515903753227845467923404561541947966728444048822864347841021040337224686769401135186036934987410347465585816305978580341909160827525678264114142665881478896786695790622947003634896976562977223980684967531580222445461010472008930698396048238412874086654443166026153924712791414235455801574741271146088974120139517088708992158888562173275478867036891688502308957085503157891586014481011674980262020649504188195913333452764647355840200697406764103105128454100352719076412788491857384420079012953264775158502847468288437570549343142287991176772358887683939469423163251551631505314109741849411054102853743954392790010466961954343650568033158610308577309114387694606496480797147785734669241772850551459488793401345321581687328988326038329906445531358976111116985636125158113226484133693475113165838112941031096644162566001834130621390543537148291918567991985556482861742472600884454409569499874882447286248789588612276438289335152633050010099838985054031554668692051442985903754848498803126276788073076616081352936245347617040929564644448810824784173026681548903500605786851639631478805652262477880883073782163382950186563214738249399238704316126507375112004219305194379346323805795568678198399744736751674299815410580360355079724998772348341744283762666066407742580612312836186230593267391844534433499779101685992461809699207069101490551690768544670279925737676956973471262908054154627858002381521083507426441610547553071330294329430912903541312951793299489952624318138506896212716678336443735348702451302095577909172035030828389020552738333622463619787618965789869530580911290132359066248323942572993239422878113818073513278313456176144362317574510041832414351332444805964099496746904409028805466384572347192939150448448156789477452272432150464214819880353211425892919538891688302974298559446875395596635633086960574146518133437286322053055256112334713192996774301371404630719589330016772260847712975314503107293000306696811984001962672267032391789091177871902223416140393015033462280719584645901153845191046259318082465402333517912898549769022700080534319429026953466505648358663438692094205454686400992594110682530418412884859627389580370675971966355315542519612267329995587821585099950953970518256987197000018574709460975610923397784657517260342639379166607098004934023936727240574750908907006247027852069994706544406760952805354340561791487169342521855019107080012402755331543391554655900424769250639681976429525108556661857510858814353608240285078069398995528549387991705164428106259945700985972900317818111118010213480456406762078314538922827548942134246169668763231345537522031052301825183122102105958029591553745096957630456084884477029671066447551397570274111744584777145818758567868598833292288766793910557236770056313456219712862494676268874902179459622254133916240790969504769218415954840766352606369928609636693212995375803263312675610168298626563047196817542586298344472123821972399058086798205652840072669600413472154435658556962319498159121262648224650070431989165985424880780204514586038082138805472297993254697114779285135187649434374111966935919233625217761036175304069388597402311829816853604757690777901734793047988797792357853757853421935936967759968664847205233737096112525413397430211357687536608629515678887645946329051412599634602152764766929587637029864552683398645110330902775864153205145315246965819106881489848582057389851004134042515379544566459246807137553508475282913858317764864942000447143128089009667238727886417018485669280493542708229741698237385277092995551765549328350587782474799187911863407136268320685679270063091313592219831446331404890123055382988258142523667618899655710148944073295845886772185423736787750920517720026764958553964277238313172529168512790431997640187383529560070792721864857742589834480866862372790743599858074862131409757287006587676380410446438421237136130264141133939252441924213717039818772674363836623044982138736263050588882851799799857423990520180063590138779880766284797644606469159761398610379150494560123582861154103322593314012205099565798133731904966638186962468005419432626331525334949624052309167708797522580779462965009536304976025114038448371463978959760149660465661220977832116842362748190202452499774504620466580683151867362970801287024548276065362789507440121899768793918734157513057954820626132140142180375030228826876739254591724429580589731050872860494791785850589717745307591880342661643404165349133988446058683838762343070173882059147841253731187184722635084425469504726493721893042509606812694053478280285630851485271321898227398731880441630629359192300422558608735206485032934161100253490935973242402244995150670842879133172549490639561922213878080367646112474630405929586003210932468617154851248145673714467685198395589409182115031145365046365324058555872730827846007300729653992500933320469518646017277397376444102666556947192782785096357284831801948413482050959566328240514046049282665119134073342802600464896206862262777341436202829800929213121344311938606399931148764543027731820729027857658976775567540111979058882488909726767232440841949556023489571691359803119622431745652482990324457360795819533948378399934822320079856764668132649964776762055595758845042706841142126773311113769824081793100643474862360238535847118034738247755513385740308902332413204746135677299429078422229873722341448077006549314150448166312102934476234940826855556416016905706986905285998500297961207621609411911332922882442422404065202010131066313273912743719661819640460012546596146822368815996087219019380409576136242223172994749308689021297952782014898122480795255501596593464238764756408615598811572800580927975448907510371045703113863915495368621077290035676629689174704142135889033487082456806702581026349844534324324988421231353714094117430972148722726458970239514247532692746037044516753092764854522432485576797204626824390297423594142254790015586611187450052642598968648539060582253152540490303635275368415495571550302221466045172038494635163270410434514607412785209539498954378894565631606680694870447305946058116224579741294193738172264505574918067159385950446214419276705676854168684767528796347512437114840943635783695126264983397068162616605109760330142874202853897174563369069078184356640079914529321110447913264959296970177654612686253553013159987896622836069094062366532816710852621397009854050282043665031548278447576538779284256665814902771784526824191926761042150406014957584970238355112646377074025025910738256379267210112161791632544359552662202393842653476414838784791598351977229252193929183485134479399938979357001983971240935104484340861129058019798935855509706700330705877649638044228196540459032649545336127737147660106137642702287184633506830713493399804159097615320758223529556454694912443480715747965348058696362289842463942630700320770849204986392905106280898884834794324878189108945087754206570181147295683550250539418053717734036237499151511797591253307004102887929732339641919870348107872717640786828276737335013969612011261002166299686922693560788970080372026241564160653793869710333531697694638558564978801195141589019047884766001623582113945220862341447598199834971220206277930750865787393019407738179392314204209972898501980544419595183693682274839971064015286691568046410576673218996154415685891558029787979665229139356843689047274902184938939383398275773739619035155214158841560428822141472989199381838126443956550661522929990336790280955853797421813424533064305511506047417233648390603771313997761525002353198651366730843348425191275629684819083077231822886326261629647814467052391515870950047850028973312195663611365929959922535447892879381339028781444870560735373454554059588847390379447782150750129822534097331037119952498961585090779090881448929292003453865438687521502875323991854737795694614467385083357183083515014866165661017387735546309487965968981320408398668124253904933461277475838177466570393884341306093181069379159728516337431302651753154501685438561127514634158625501063577593499921113915272066986124703888539136757714851587929911575691529659957600443956010463121041506402799375881244239033370898049222303300559685808058387491843116599815259568592817320031221337871012892444778766094477155152029196837989283414133355582449241940825904135194810383023632530226376640258968638530358597708920680884460841621135118802305275501137352166142403440874115283471790210767555276904773664960389716535519708763672296854703120309492059146491868682024590372544127141343597814351637142029372166856734588166826516900027966929865982066024266113416177987417423819109345403677897427808127286171579092827266611979702000938846597834865420114711472727212544776832527237719637776721486811478325937843504785449727771701487133762485454439699356462059704128922763030704423239374804557188531720352023856886982930826578425868427463920557125412369860890266823641155654610332339259561476995304698717791094835693950995304278433169072932700883073890466993121517067164498988796401354050184747022114027871476631130093757832243175315442718381525673125324726051338648025863041534442010247695685006559569273007134008210651597774456197203077344885259335718383493356235891865258111767020556995322570781886404568094402751082869023149295360793358446517861840881799538982937943567185452287642478777019669806679794722487902969259079330887115856988757306049386854022437933560766722520267908669603491560128515922981480947443608586798968200152261223010545545525201540853420499886031460036921788036991434302653864665349304775755974752072586587299408625752753025431207248296440108508855539787232583762112652181638077592594710756575243434320521501271297726168130501026022592926922830642345785677164334484406762814909889203332671604189019913275525265084119556129313014391335532098348482205670242719861002086654329715199107443000060801835728579824802033350990179446442322282448258740389235896379166440008506417956067090296555247712177073426240498251930832153363847704897107031338768445266920212956775595848575416366688392624535329291428961036173791524457435735373505799985369821237869061058290488686092001755442377792558993824870121667630099093239335490431529683325149897634250088062030490197065293046070004075126320258213191366129982488061204433964635850230282565529751651540737912206686121005231773535271925349806209272728001986115354492177409380440684508586691036867567172982414646305936637224945357513996823816402058143845090946505536798552620237182757311654577506185964908092871475936493152147233201455021213567239375176060764258381363648307660774749996809440747804658528287480473463058990863680555936711172860113609295795489259924597398827280934438903238231757111427791662881861202463234500479827915872502784428802540584857984542290523131800460424271287875863060348804491315572685452959806160884681644922812897076088097205183779246174164832896881715980652803897377650596051955502839009410215526153498399419898881523901441004503356185435436125467234593442435309916360869220044845441825639300074996797633670451722504309889377470940588457829359960096824049127575764301863274688730955360350772959173119983662741585950927038585006747006766665802255970600090038086159936540176923807015210612736044215375154076445336452535234695025816722500254044579332165218043125110158935997123177773919134850535554516865517820676178011526198343321931562886022772283477705026412304389057858773846924586968563812035634417326092322361717966866379861872217106569978871974148788211522169379188246319666524789905612717562995959925994002162537750970460478388045109092489032391952293282364036270022295713020757641963822820476541969926904116277050973581929626429160389011938955746661777923212307504695045912374963971446544645968186994711278408103341396901722884304510018623517810027422529439538051273866451847142587685185173957200712142253319676834122561690864657266199352663676728235085880739948082641524618377369983310225343536268183505529148493007671247899444037844959239851314714472288712374785502940319316292344922484354526822231574694980715340033786875249467314949449510115312644175481283506789864713374803348839729929808391560808939007674723941071568451629276763086075210073343323788530785167196673259346811201450102871372908947811237853691529049114841269189073826773422005470961646172576326886933625623323435185873555642127870003934438985757984111310198252635848283647345959359435356582107547448852271808201725566025739457376339720710410312279640539185974245000861069045318821255360933955672069915182457172343138725999189253828011257300986282222638197452353966621898377667948304045325505496909097495354261020834856665068729850960094244630179786606828990756491033901042805908906775428216185525302638127339326739202083597618386723954012381431829758452567375590622662339937765462067810990251758583591676692673104363467243927939122950919497574440658166033892419764301236025459212167082413857428745972558563876186827960672956581578467147499102960936136260111189945257109387325891562809433947021016586292536051059526136231612302247265296864867412200493782895824035547393106418027690687301313824054748946735176108762405072342057663953513027969028834614976975317211794189094186784484389457100687854688287351060814645285512316200496676345314047779297556411259083559687588052680321887630505634071898410678838588957233403594704910681435119944596224115747262541463972628037870769810894709588316514130476006656055476071976397037806479276920915032537276810105948068168605116391986124712006453639616113088641098747173294272241997441922956683287954401524705033087099342305374777458780814407516259695364124412454080764024226006325647400991991161431045903882784998462907305699636177605572016612366850546604643815935854565479734026284195435868542399550654484541858476981198345513520941733975158800890904225991401345317356213397284646808373799692660170401055513729172890600858446138216451152870853376026931067801056051051006933348190010593660451809467777687770389213023393689829055477339211200052809510109519643978343414848271575594871349556479585234190355044704775709880848396264315464377161898196347902081726714203492186679479896468298111427361130784488109047379634851718220325162736640770871525897178635101433867936918917049304309636253658916110869424090335156458433131153064751053995898381558058144294005789182181362033709439201979326310408152954099732602325355408739515241877592448829911129416306735093034224905098997689677080074599087612942161333160201884669723857432586086331399093209283401713601007959221033085835746991711717636020033153703845561352511159789466964199136440197048606245470079142093311568047315651649590192061179285334103572589207947556443817554570081825755903284629844824553193443092633874884380537016741584635152762733508713695781171018525017590789657777478292079312965431252123024096395088562695781938915411548170615751834795781407811410767997466736316007865633839604718214796538637411435994932126556411715382604153742035179897128843552629487330084519865239775737291503243038604782509245430849785939830341086710858982831290534203347504410254882354006218700942075862783312199663970413341719389424752319956194488682095056711111821217210715724048707087823961070464924600265624010255998004502467734545335033437436588683422163440837384765574918765122436517552318029633509812207224813289403277187533789456947377850701969423199529439220431443289089146845239286791761535445320773646884865640237122102153606680027698008106521882548385840666074726387838788166080073136389313572012673265053559354454801282024074777050092435988164779275188595849680068132019835814839676681852710527839665721388543536978179223149413779220596363527642310993364447757305436718571061504274802016171805849182539215355012781425110229879591043036520940364338679910316592562285692749718008663571941856348448667610003344059271081479904755182813712882572953876616425278923078477722697881935979480526967791789571798099264848662647584949052092700177277119261529704746680777337338334235241669585961725631670284611800627925850682767915933686130015934112029688471761670651200229544276367387181274925214812844577519905878958307914456995962800768538109121397310759376009052519603682117566343150375271891376375970327171364049944498376412826111583321881603646130540006113987516846970361619358702517458530489324405686830315261649073280115196796671804561220714345785894207448225626646064826808344282729046277813014319273617177284234125776072077656367954147207977044521077859090032485526542616420347966208970877759189919157958228813340223069844273775448705120748034942246771314294543394928173905901566564382914778190152077175966342923499790629429626591775108983280776328411209496318145175348306494273819911780637560553329883882511644905672377004912419475592676547188987006921303402462732148004383035608515175769177405874295692899052866524238541921950417576634541148611131213913602116767722564577407832634488473228323756660227162877883872388391429186237464656395946052937424242460658711923018575024922713088135524224191171745680144086353641886680322422884021829362407564540628472018199280756195731122325666741449987557065716658231988847838069016148000413913706388062682527554188411855059406155002006083364255078048915830385504445214815832571519045248712526023700211710249001291663518493822449039523304209135325090635626353659955825564302548788628886376686389711740434425604376277226390091023074270141751923705052371015766125877815469500351816138902947732237039825697619574474221359743930937932348531897010756953419853920516726509213922522319973472691371286996400839899305673714727875903079560204225377861479854671056141906780838993230411380377705625386531420269272100259617271891910762747834960942073829502270022620068534234729966692184864195802273441203530242435832037328178517731019091471942471154861714409778674428708953123620703929885055905528374347627244225190846025541836331796102159342874009863737818390818270825852741461356564244790502416994064256389793557350122126338336665612053696132628250247545652739811599444803933443493691052957054610499713684075767724292927447797012184345356106063265131056799670095186594529875608133570273228268924764958586253848991828141132800789709065729874043166649851001417576049985563865380809000025753666348610865111399924955481715384362061262231787602136699057268221315320398887795412919905853072895854879462324223794133504803076701140361263077039935309053543091127221455873526307518386900916694604948613376911886287345479532617100216304681202352555311415297124376108393313700261474598246323376458513672918153504235408814504237221621487521831090090772762146376174890866768777832808209510651478987379819101774798107276351402763975669244598738433542014854314960290023194887629671250747847614662089054234841942405936860954720483296899120694249911662353398886773324390239734334994381545832302041817657587623757733365000359761238863353348817914793311211176680565490157164634924457859889450945387208487700069262839013614218714661449101585822537184855469969183686101643225091580160713332071898889409043011817196579764654228138966203058195683980209556048132746777849278539260842240505677421895536489894467394560470646845806985229003488680297918644729329497580011434574057108577686923796684272552345460767165221461661079213541335761108788652374060005461231395479979339146281920153625556534447987651115027500100810383637225868052197008641022795484570861055336094227063491917487645160053935117473730510501751141348045169268669528682917983222671569530844298054570407707340807396424779398480344574443951553016849608568201030164194025934460934891173412470481740568143425855533390395227685656012771693950922479558319250480209359465492473481370160866149297895975584679759387024012256864027458141683356241710711862099822523484577207388434138155650168392594992213373566528375797161568778474903479405391851073328603463217216958363544676770084018514495418459912571175425054258805469197368573246387925822846873515548038685935167400547741959422243178155069479315492207559529832874139497801725791141444107420004592537325995540298330658390839638747479971126029180136967313227273457756799426939712432943068615566453024783870346665325833844925954847483309070013592920049613969962942194938953668625083356031469536728235743583701015258985074573367006571983812536396320062668460600791010244204285134139822242987979261016557214312556010041985704592410991668044546707171421927739168534991764426341967278931891347692406377571957227579433949378989220424775369382320455442952132900868400913801691473876540563776398499830651334997372709931218795717099981405088584592355525148195589990772630179662322981729967806780397381989596842343732205675514126219532554000590754605608807117473202469308220813672184190323514965263716437622211669110152256907634369123702842581909693782754709692485931844967690186138548670214918672738113024240867752014234030828265220296202559249600509288254636141112103253029055037554343663834757208549897181602835420872332767921590133179184048039566272135172799560747526518921730249787018577742507198080271865816636694581602669075474369122787910045430886913613573556812472817874940611204428818213985809188494038841552095300421296754468003912209969824539440674090702684932180863399673368592305329268267837818434947022290471526821088272014902848745876416872139200392879531011203704999400518830039865401356947428876728918784410464077550333405972810380764034039277798798777396893124443912492064692909805456102017650254983725593115444677782043667206856709463130769607770602966486016135603882819298880409093139303469160603574198214883343982082206610284422159603305799132311499828040802053452096441037355702204393944834195745605856310901162600276305719791641510061258029982279861068622934461887105831180803470755409372529940978377489615655342073927705592378123272205509359770923671409225080224052433252365289516201043266372714885888506044049702667883411389767777071456586455014122403302239578319961180919360437103440103017203805581891053708916410730029140664688869477848955578897313910332630323308716261926872182098407123248977658235564051116291717955566094311696754931800152079076103361575217270396010433922702551053766287480979657699705149599956244772992618325063775521583524794707262560730474817391692858503307427521887036775772298872245674344339433215669590317338121644730255221701676059385178985376708956799498327067157335898192385196782309453922249855897948019267869940059527702044051050360167204680805225040155967308502875429165535646637490745212755113859400138710558620900474025437177581854264393772273552712896559850801623997783108973460077511034219626186903014077265971910564733095222281064107939189497096615797239361259063808325684319492557940108595277732661342822066046181699208640780894401817535526311678498773809894603630865597654639134267308938173889428056089409656752748120750422797897450709596578219779689675514626630633380361161108883371739929613111226674206050251112812814868265119042876042101141926307864112849339133891960245059891273155769855421208908093100050212891982129492422020260018651606614014418930311861020058401396433720567082940299885666683614328269202992253254407881472514915768752228919813738945155907560134987657398270720783531724470063164225922640134197495503843950439495827842961102789682248839073022800289448101910389348137251800073728167389979143913931238758864483111473754944931078820595330310770567490066965532351555579124566806577642505951370683159695160406809867149641518803927220375340050799375041791390366743256004261495817932608117461070626473061159370625379334301980264324353255592148013523649269920347305728613000828140264573415325593666366411998079584017778974543240945921023413548538778247028204252111512080503248017743561917037652042407729120004892469070880839032943885759355107130672574288221163156870101732434457738030970600671671908442693445345800128478066082873086364942138757377796458942062362668964591253964069324496639304621318796830831339927419696146584904612984571808318391384972966499495567445327350833206924600757275392416489226643649131727375682151921108528668891409198152390652699448422653039494989766166807200778510073632057210959437584046592945698312736753208930951760631369031242672318254397245778734395235952582164941587940924035545034763403174290425228180058629860502253732064388659737358859871334567684345927842360794560555232592759376521551502930128269039754662068668846722471226910450314074512902991215829915194398548892363273875933268466053784531981461596591188103713592395030238966523119295542078601950132061818993762347821102009622481138431685836385979986513176999868570992409814847018190652777498253598661595708552471697336465938546433740030943603990546197014658785872993146288682692797451314146570656573142697095145732196032599947125689686684905133237955266611009440586363125103583872750669848535297616280081993309524778797280930702427381221261627423932849546249616371024656853669168601623440919711304967320164557775376604870886077835096451728806191107856905560723232331795296330267071786501151402919191291142253451459146241981600433051200834874480797126686426634259478942994043201016201143708914346101884296492468386188898498183527231242846792583782911744792108940522383832898892948042880472362661477741695514194415538611495227100728511661427856263329829093569950464997989276200517442283683280727789243053290686722133239773086951635072647619414295081910981390124001299545975267650461686225853163021172158761276793297666685816700679606915362710913848610948960516451718715693611627566049114385581523705908499875453228391273425164464741566314043293106858396243044511681097455436058830344540635124699471675878867733947982638395915329183813294855477787617072766509749734975632735555626670093172400458723263254388020606252913517501233557060579130142262098760095011807722946472707394563455767307581745935839099275933277408270019934034765512777675051448466622876726584777165958754799350988459262896936541588287961578056826726964995421080302432192959558743781633682464172491083912481270592452950577129868378519268970690691389720650187595585930869513792518559471429194958060835980600423579505330434689341473522676152830002898738650059348373227321533950152512025040149287533326105050001662350696356075102673595444528123605675689968691403691232079017763407975317401630084464823799553523301834140051332946859366584706014397104651947211809164971531747101960591354726126511953025436079461787093972507309797135946959327283338440952122074785184968685438560887049877795735393512573994071061273752059424353300706996591561325602307243478979273322099283272268315269821641904404192312548580411183166957325092643167566878911376938854585916800725837723007135838243233163034640381439968692284817955629786604188172436707605077129061655710071241274424102873167574716040553866383636999096858975381607818624754871831778960284489291612595667067872843276881041338225329012319742825963176728040043049169898014824917482227796409926494613528960915801329187444386718194919404286857246143678243894988059845315061172077592376957177973480907472097051150136226498662456970972814722797264553422039724344430183938960880488437125287352773276712201379231929484123921074180115712042307009631243304502385145409634310274223170373601696381702793127013975052225174018816467966508282370001469633163194976998890285096944428519569802417486485135343444205158024519357586991452956311140128474905463173649523005069015190247066880697052547228987790688024446093172124299565861077943152949790421115646425578734150576363365339828455689460600740571193885849493002562887867601068238873212189666114120267683436852046397619174744200428944125985255855086673472314010585053149262500540174007379596967176990770421435210228841078029737983954143153355849211733562358596318746980626866329815632640105396470940938665197320742271257474246888774190247295988131885417134976500668282371405927954043016985115282421610005299884991562496425422845373422077667348076417090361175029599466835728691729307702166561815592659451479255410322286426594554754831460462685995616434670201856119335272061822215941730721487200546657396035850022135257292892400092056776988946087126943170110175199776283010969973256970184895142121567995211726409131034680571887997574915416656105252918756317057723780866904703939167736415602608476721234866336630283397047179950180782678449840876606237270951752756034307508475456292820926229420981056330094273935512276110850711412776454564618352031046708367472620366760166099700383559233486958979651018366602289885289035109936683328396451950038121033565358914686970241436356757049316887313148157354090620073749292971787000233067756220776683914555705479490168074688067018070662773711545084387367309774615012710607888045823719494698082702423712166196515805741264917854232401768557805949196525850413615735821580039011195191363812474568156511967353766908847602320980273380489471506167819447523452171865559045750064927411956419131109602325922496947600360600040222108419204279170489159812110994833726505913222841160973792244021528936399086349054109689102775622305006487014513208433267609091352515795393932798209672908847829931450647238302822612207169741155398443132872638988528014772358318551025851913183470054069893649444053483677310280714901083785459285683536847851358687236013590399530997345099238728726321635037493768123295375508032076997367467098146440455514135484383942841735948011406736372913193177180883141880290531886351444979742018453653441568417364656486217814113744494240169893188262764242288945738044441042586096185930218149918117794255788923915499980231930649408644223779232921595973214931669933546185353743841161037631667523077754602525919534856900576789134687400072550063156856186938428306898416466920602825271777381302903246795115503249650611845478619659743900994454784255755359161379737226916698760085210082637135531268802473486462196631022382024373085488914305394447126010980163781789953468673705454513558173772364011212628187078115882047672485961153946326771920268929844454556397124717000057322537677982422961261435270122583898345042701524340523471783810428467493460855633920904048811883439070108241720136113439378938047814633260558867823997042674240134028314951532428331541303168523296911747761285089043566830512519817510340369019489275693382019565169518516302679890268041788327692859400715324721497721111304417432833406089896479939042554065733378154294865377013349412922644821557835027298707781503564524159798236642582793403193567328657906909049418616460982597106014092698826726823446889948558943579602615930167442123739778479923918258886802890214631650516544147248469213183652980862958199314658887200788127308084716227890780597987944539759598281879784262685379718232391410187358716760005347782092049710645266119473384200278879125196389742351986699120914034612763438969058533488341733526814666810386397365773207497978274347427804885283096518474496758319976033168616033293014208991416666276482664132198464384635583098382558219381810538001902634131717922010622451366488610691744869408159914887787130981488605126076515392820773097552426517082145232019234809568688016986477230318227466261455721948668889350063238844486310975365996999589791395282011966653245626781200583113040062337434414771139892616643192597342034973341709156040519855059528364911989260524796941180134866037367897353268567357100856321570262699849932924254623746666385852151469551401730728442578417087240981494953616175018904948869687664584434742056023304235335424330651129061560174114176558440366575339402350079498080276307359655503845294824145095313857849487454707695842697117547753040886174706251284942911253362789838156510809536659128738535329975017073835265224144217279522899409942825058063104298371000839923152997646979248338784650677970023861568243828229095161371975032792502175250799671462106834350455848606572616345356279085303592528793978124282055763419483938276985655562104408302923148578882773939077344174307273979884911759051133112177277228386522244919766899774814369166495094496065095153092295361134112934630065602611472475224205856269822351539168757042497264584074287291412968424019977105344471453660187382903186082140232781308865680249004044364911523538001861764642857373250956588837544866132333655759215445900602889946292353862129760458014803413477412459851330269363217525827115568363188504178478418269573970813090346528753917921291624357955628156679869929262172130526831678721442943557399072024930462183859215235465545794676386441926083447788997569292568433453692986683822911230848750368279473139645964839707052744667928987857389449445878723699655318368371095886392623859963456445294284871705833187671506672062651493477456023905700928976082705180876800196100111622610750579612502542574570363333868360307518126507734148548148722687291880021693622145988846527066852137967325075680024504803076509941618908649455459346575617714768882939567223685502892882217301885234183978971316507808073962370339694328643891366242329738206720163145969999654615003876480251539474030026534759672476132914895842369768628470687352129692657107347949794356348242731916665383969887979145020927567703835723658730399778323710365096908952804515944395209537581300548102957684796531896588112499161094460190031779520163301877986343064792006205955784201979909160552811210567686623424470447582726714454343697832947444285063012922235099921667499432176423507332167464291692807172577407168626629266380625206957273429374670171457928261413414256680398350406177615125170370822492986102204155755269329082828026454567392142827633499011997323793121738490674496364319983558010730436236565010082641787498837893317718494810650440307998542446480421896704756363235000197724130859483406059919027903181370125115332573719620084255672345079185360814543883536775876095084046867137015728247408310637326566412113315258852942569098806068702904327191516354939370230863647875885445484672927230438224346757346520286824083935642835674333824431133006094249591177093373799326717037075637291786412684318248905370724749495324382891234491619523453224201418654900026562718735380044166652407040398955523788924999948837623097155886752847797085108848271856150589763868961212488161905605501033230005918048607149851006382431315014724119092819414900049069408293047832548340313369945642864486392096298686464381326702947703163396019956680817536822439473609877671314542951602937189719956864870461302711446245181562617873575219369724790479404422513577868378621436966469544222743285116560463085845124060582705194864808843044503553691692201850240229761493186667891505092055157921177747147854591157565500308116893463008853948373907294224043072364028963393081680696576116349908200448070586611496489760945547884346065706748700025302453969028116328440533750491699503949917539696808182613554761722513115630308681361968453417766034504112790325249881196525434015416077662245267944462073086770756022621517164174792877989836327601659626188849532691797126724017709424318235328791150975234578434374546632348451727053124106319053250931997542371598098782848184027774533103480702090576249426647141513062731653647942110964864003439172800606872788349555993449256015666970223114605575834142363808670427947321409008760709963814433329920181924939813341017108159875034811103144825967717056406537619619369343796620279534248511073780332250915954310587288938757069825226329845904603553393160089140432185847488425907228518801185310749908813540250883906828144397744670236883530875754141034127230413629140463282854013207247603005910824330638210979016436652399004108034097691160798539897709118589701915181508150314278491651316612769452403247652147426067935366492639414778480382733311358609668559762097214694436373816272977587954687232945099663094306180459831994911456564587983178499303294067955838816990290690445058383531026108615984345652334732932485914143090345777422837962810991679810576907480796298001223303162415301266122369192638820389275575316801233341693942278305739777561398496360590394621749404432732078372225497697735104878316542602218100280730387767093243455708109324912625094011507782602905128464032147565735363891756770628026337012961933056842128447857090554911209743184660111856983652936355052607346380963414389812565768617389085317987239969838329498109423967228158976234683153102961943066024018043608160672719820389701030055281657296189158340827022538167742712630397389110838924707056944394583066137097597354844666163039227413780883679348521356872421774444812416498996078769186289168519431332294902493378063981722365006409026461896312970316594500842415955388924046283069076518427244962270137409160732675387486204479968331099312339758095275043846811070181012378696686156734331517520648701955049357685598939441330411193725460924455120508618694073231974060222667211203272700605057332092524759577449865977497059523545541881769579362509105118396594025295328345264688090579334929435960700545386788268142008877413399723549188460092345373566128644113221964081882355345267187494549916988641181760980821310181137224680107379550611340011624483046186941636954256709799150544994199367601826101657326184291867858903220940372853148087765296491366207526964002079027575952717907339142401021017650121621767724906040174151386887677080867253471425381286318715172752955118027438583726818731917514579467507334871086763388096211792690117508467371027668514824176306252681099251226552574189097045768829868343468291098459092980578595801727550160435089665975459825889583929722302582112651825700664705118567395360290385025122641991367394265986117061268573267807028791797700015755627657642081795114035856658281536373775815018984837266274961252475430165823938475581070895353316942320717500572665947484533738771535701794756238785099542921807830884364044272493897187354829479334118244235773061107008688502085988637278031070722081578869748541708421378090055990130581233958417815080404425209414277231065274428167334492133700494100210938197806658220492343920328883924268726335665942734044585010621685180532041081870387283627628426818196298659797386421966833036365908878398159571583912166251078175284176277148941172872862905595649635321487533789342536511339329242543307648284084733613247513137402460717968099492705374688633166949646916030327894580725313972095640571919544241196673127960219807893185818269576427477412274648841868317249336505565312436184475428718659969371872141916563733963525732819250614620780345959130161674922570669425582571372862439110738759985742560949727682911792148553010346021829835440976461951955343381981875821508781451683112645937391199872907864201448954204796075381494058533500972701484993709550234760779600109635867246422832279282456956152411375973400778213935724019724531416989141478470617531484383397286640438290199981929909944418548159885428921735595671351866215865823032659888880433694184718981541311304372924567594761212220557430125477208398784856375404170459412739882320349366972402049512310286622125839210988676204431214472205845359796614034962299694349808097550879354449770690926902094432881974986433170042804171133475279650227229624405329184437858588692735265162898003190376509958834866291222023165423952011397863180289091501865299041982891469566233470438824554439859779628163549147726408751498987698902354046996547892858205608062762257678088439389576828315536932617320562571252997226165072412492871400123665399291358751415761666841695421936699014226533274548013641282311957963665707539817997079795097315281739586966040939983880378741025683699614389244772137702567793995040389116162680445710423144133938500789675904078979198087333248616109755965412249124444325205414220449974708754992594917862459126651864817955223216589461130693403331192382173067362661827492932781969089060314538079132031894443961184472082781253436223788973214299621831242631143193529888609356878768876230347485496204914389903534812821151270584727163616113996390181974625776582794919734527884493130450798286472181775142423212225784109368685239017440979566294785677504984593809499749884199570700811489283665058502210162942906253327697697305557522219085197894306731614065717469009722393475079068929643940383290319139970244960750661761442208396852447597155678361152408300125121181182865689818108357324843669724889614235762809131685688016505702387747883268691175718455729277284782606207121516236732025917174507787244340267095734344733261314036654039838504356308546520718153057750980372522212613309386950642055429630924829667053861973021244398231964407762965130431844219269035327580268032991016585013574812643483722477095127318924044939359351019377733471519508989814676959665726172361980787898162768355163222116402212097526113390418442815363362300528433105155339057206808460517162068065859595006440397840732802568175444129914262571861491742873284478102312806539359453484254072113981332437293301288397249975441560547242099742555767281777459473144116611134691735134326846383763489177330310876127784289658000016297156815548383852180351931061190570984204559617679984872456937462955258135720738938441695198082023742420295318241398210925558701933742739240767691494172606667270044468026158528891490224984985003927688347741087679815444694641950060463815241819878672087758476738367764281421887851900367463607005680938151735646083001501867257643479864880032132591493252946303660503999741212952743557968244071214523767680690808911474029295040795051200210921943889140478684762764674881779091867767023929677158482742213911124955374982912545804597718497594111927145745991956432107272806729516967559293818544939989468262219107796569558483018314551115306369566839536820771102853342368525464007058733801070615559449820283318142764312392045028258431070595383003423332677775528447517382718783961478612795473277246788763991526624631064183664877280815532489445940079911956612417047144455236913264168637498847338641008213122549767220408546498536452745873328104421292993183897878289009944957656847530594462156514557081011607615704102925565208718874415774679419736820124021318465653355579122541106876344849482506540259872207117920471673104091969056871984215164612661747551740764341654714158081382736131573178303576646270621568917407128315502697464193282847051535681474719858859927875500654794470103963734928957397035368641003905948625575417521243963355886096414243672701280617714912794826753035942587728503840978261801455831716332895967221815996060684036664380154040463317824517580060775584527051936268310772003684470783286587069088928747932411710119489811116929228743445841399592781433219117115559726510909157861692453864564288375425996120462235973417691333303944029949815743377851530693629940710019619631027354794607822761222016456792897783633058258409128677887978928178985577812764415195934523150835570742313033976858421836399086197095007912417581844566920309752875439553372867638882001119062497191107911423981971197106000502482757526716876650665387519168990527572224835051800290433941903375600270447257045543828561268309173621356691523892040261410024524560300138453232272036927766144278719011519374630316521820198027058458475505527740124026776530227090678105919357182838620463561140224103585958059498365800799681031965170357972346949174149124091940597344123354319946427327936185392459355431266559049783777039758400897732093724545293330979229528887055940720784911835678663436785585665268495119478503600495634228893352794539262766339046497708512057203672115825302033130886293405766328688430082338381061884136295645524780341023046395742395833841302965005239632253457814406604835701629204145889563936336575251183004463659404045162397191281731929280630301895890821975334356795965489334158051285393461047800796478123903735166113885504349112143277191982320270421852205967895329332113715204407605265862505349141945834563004234176304345500234594295312300886568021138721509709242085438038798116775322371881494122489885061080517842215712708104026643525777839541843345115793705782878413996684396554056291578667888651386291303433782040671626671748246529092002549086135320135839146551857878720808356656085366085016398637750635486691105684726054304168857304142343774071030492072260019165181671489468686941538705811533159756002745676197496182217811047289819444278024575820634991868589299327685064375787638982700916751302978865624950014581853623989340785106217898405852742248269314129140810455404417044880247283740279779143731650391702744139295074659637453819519253783498031014573033754719370085018322593732079607184953600691724015317418728781315481281918413550043749375926904070274058170627639899283018098356308142408616069367097238684854930065391792810170249451916810070545216945008178306783107948794685573717353820429567351899449352264958864178107204477083721455532900672411763288132833351213191362574470754486884758196540982030318191639139420269182027856562105005223133192310979947215839786515744997753540757961470869547759306904080402938112058728064856197991380124502918438141189818327312795001407615124309885887717303041589395947055120748874230981433787767657412497401279208337310862216861295170497780487062982705913343225416618060462103278197408062182922914263562947851545161707615553683316922876220477720929166747979299123484362289647878430967400089088161101721739583517138178824290375088313934485667729578073549925869700685715990512019834440757688103967359106904690343456118894347160906564807100129163551248268821666071473374921110078061304011504368923683904724387620523857048051928934730189177542949008392011596151513252473620909336735069954434485804162116834701386881494143690743664809077771917702801094127585105523520804759535099723920194677470538736235177080747962183312724207121959764312349545812464132944326508691094659803165216100265035282648340757646773880792309125080339275762403335756193316598966478993316963223495784290118384703609011609872895887550623160367221662869730386144306685382273257678636636304403121535152661861604845706689526533580544171419167192445359341071141110508770868075629749635923665396194714441987388079648423916909855072852429034337642632758261286238205288452710434121576727439099922790196743026956804573114908249927993023905895421251314556053768351688814923128929696446115037954272727008684944935404049245265954912446703516936987226754506596064612337178894599733880322797018467558438740253682552160954784558481886579122785256931785674892811103570589082038782959862295575480059030274494029821029654444511208184122165351422881741907119164265409676825321484561629295789269522437397852246910122743581458638746211582307256412640345223391600669012609083702850991107331675159893789258292119693273745314428968867245980570912957740105044514671198110814530725805635503529599855458886497012466636999793949611295572990023858844249514923835882510186403386554155916976925939425134085715883310057765834171649674593244932289919378712705091972102994987007630050886110330926064553763057537047687140527748658049981737148948978517095365925393073954643745337801339700158070400807929045213521211971314075843543976058210107329846293589742875920872378530405112070769199210573550785385198296227879062653307051696779568578273724981023823499838501444124877441732303847859715849209066420582493541061246577962490008529795883742407649710555760340034126920070282693433142478669636161986895031008149804697366649610245129374175779680622199445803155778248397532771796643366369907551409437263406506106289244417497810020190939294211378853085811718209936125000772440335334545330748799912020787336313840758902872693402430355896612684125564326521906902251890382768826531103754638795101244164886497588829906101643042761625609069970071080116802879483390144239473231762479962031088607719656246607358757542301148524172288348932896905961133120202340129907687309021992855722815768025992830559367340538913791035266227456777559759986711953172692174093426985567332050236566286469985097531374819930597729643969074306678027625960389986811125044854192851605390939186611635328440281078944935139831202026405281206431471194940944474920144914779082145076059527917038750078351715127353220456705672716530190529202862229284462350561949793338117338637822154996715110279552493149781459416908170758588004177210460964972536142399289516816316269730715986446969360876357892398868838234336490637369641526462044664897114603330567663854098504649673833948438135768322460852045891036160870004824136991493532357994562365093053342680124392467312848039993153230045866002318580909295326542119744552011359767769209853727544207271270232601924861153087326021409918898434082317451058467605338177153523593005460361544008207102539285534044869244879064016154529401029097312672633490635987839664579238907531258002877279555240780122227082022884669689973487575306490247133914134864600349873333669890270112275152030119292198656231346748013810867111026499980210189017163617759010848028052531227730702204407484864357538105310847018945721754259052798152974019238229380884133871252491435872950443735668942442825958853908361665509558815237994658214824912025414233469848835653931167109304789018863886641638718741157205940409211770900364699171150007788473659103701613967856988355395135400153562268640564603941176798688457838777796922904631910166117572803454075742740113371201990118805964032422130582784285490019363749633276556853657365746984091273351470090578148513631345240787736478349225266564571120857815274666865922487474376770118385794216430678743690655338310205843093185883875435815474585686900271262925334530839433881642042632144540247264639051393813324378041042143108143581039896127724712339395385591555882585473640914665532125888825637928198921676412396931993069636342026555536425575532548373395494495215385632075120610557947758322423385637624761909870911098911321304796472526601433298521893029434528470840419212302046831724796742853032599732308686617302205572942401582751637068772290880893234366032301027016320594867765976512395159957604634398533135027714882934987285023533684958055794810766354144185518632633788387169862680073123483303315346288086937804250181870716586845281727930428722987235348929788292107303856603967820720838337517536375569516621973605520196872356187426019877684343598846854929986013403874035193505620039116495742563547695239074665670702613705185743054587575858657001302531163156561007657759626217847544587177464529868347833239692433808736875434845692053427705854295016375877124841922987861846468267899858349762122434722633781530124386770188874871645899649665563792560991804194896360093490266573625380947031210295332594355546657938065190465176616890654286153536679728256531536171671951696926933485295527638037087345437396798155814827990983157891755055553468344140893656790311107921205939790750450021822007084642763383903861996895499229417232975350610507271067188407751834689147124995602388375684956452078449359286096175452358252202976783892963009645446918198414822880161119287212751817772002980669589040200068648114252107342051008654805278525761484561497916699868564520422236340114560379239475878821398734038217754445030466852796757168055999019943751133270115276459037772149422923273502087421869007998962134088176120265103263727602366986805935050380892566988371027488039295221292038892468848868063989711704407241330005025186239495326761997343015982275636554827082562487537563731601072390415982078169821857234464091572842052671418489350078090880956909904178001526845495031143440672299205470836895924021292782334966093268120142523512782418900250446604849074225714939052290700746872857439713037621389709244089724366168276812273485995813474702993708039162795822370999992529973256456958814867565174450537858681021218453507228422606797569000196907266938384820766382901494698658764116597777806950941521350986332594575612453017341407622775158579857053886266442680062356649358251666773575407395200620194220397907204810237528110812141622142536032835704202909467389509705245136003538613264489141697183153454066744683280323591136735184319838419767676816304640894149963682066329817667938409470832689158988206684535646702723659164978655863681870150130993821583660264326942133416618097798549669279049523170644474988080077352406987069403663613290720745288539538121901553575908848168251716437373325345279351222720099007177869735642374815538216358765416310423003392352606422867175228980466421142490320511964169722431865522568167982360090030563961959891802632061485711621900371179001903171850178180288477910101114985992981535851597500471840152128176919122003400577159701743455019639533630331942492996648947374645293312661347447814855625128206775970633823395160131261003869699323588678266197927748146595204771624195634807263727709808981505446924539755566215445211180791798227415353297222128131034652803080020522146897549416638304648943500128899557378159605616189356786439126747738173984582467858927832868671031757883008880364787510341806260244549975501390270457379852299222781921131347399118336435978482791988837992572418270144818155870421396473010157931378953690162181336580432250828278163375616567435277267173979171794534156899741106236047195631949864766369879640613930293450094127707113445462834357412397767399643424412136302178665831943224445539095118632683742700518962116885165735243681759288612284419075945338404742184799967845345898002615476499685019695186837110187809550983183317710852391507090407030384068382647862458219662099654101964465926524227782072753735955148563156390720261319950963842501425368810528639518751364704234285594814545335802517381862563420115164378526522788159205656011071261567769235852653237287831494924533700418167975293170315368422390593690067781753236464075205745610714955154068768144849607280457709217040758619509687978772142003253642405116267521571841277233432106581314043140181654566768996526142100517167813723240069903288647018677648569705267333823922174856925226115634714206328758218059604943233752957643013569812325270038451898096079720919270510591611165366920732543826407358685335133001687752428461398890074806636465842186657847947444839382388708656513443857120109084095892162192859560638494226269960562323670658515351926137943490141179070537110828535549096454813108411880968475806549651647424391762760904262865749064646267345141881712185347075406290716921864709869034922389184148356221540783532711337865722084940347753484439903917120126232790369622358689801943700248617341096391471469439246784928213726918017690168635034817462692805156499960334377876309669603392190856007838421151651510238978594681924270507330427911634094224660295916829943842342442659609411002590866983574267052422076964211205213677161346464569257059096090404238949137624477432539125642641106329042778691981003544621669904616595013695610274889403966159015843244879550743793073890739203181577989095843178166047550144139344100088138761680831742026711067853439307849409340170325726126574368492373054713280318063408866547358928614545692679305325947729993608791032057612525673974818048491820279321993365738795238541401943883863935046003147497723876731359331677576535530622590853662865665654100305726875158294266813420665899129039641635128517440819650460764824265683098408240119685117633650489766242406172921518335957149014521788625548334190192234260981403033111020724963666874454017276494979456338209253259403422934531700518510784212273263870597822489594417857688839613866297866349384187906013443003822110278766217988628887347254780348932516361990170453867201886633861110402983860473445473467137815770904301840924160833830364328783184828920931273753840079964372200279305826833043651339304543597446142500580375416002337145788658578353287193022090349154617870906005512075750797855599142519293644808970233182832506829909614334748035081759061426836752625998856876039945774256252136455955092434721583684657461690329449525305411439298100325899240003635782838733013641927226620567139707492638227268245709995602652654360274887514784122806733654721429523721285798855946850336605245965138817264379906322394555740796699886547569491976362245883531493818663745135573258696264690733384950966510226436565837890131346088667863981075706052161572675706742883242925349152962694231984923108730833962161549664044759642683720844430594368401037912434220756011416774127237626927621602663695787287054101182148092390441806598112856644061140722724074170630340013338008858573843382420845511844281586594949201465126700348700048351558977182998057989720021222838405715424744280534200999901375031396034583946739596236083847969774590095699193164322962534315580628881263803352992113163925352818583790846434675297655130256269603773262794666810793715838789215822935885068773361384697809719811070816527961839050643745114157806660352629682486294009988251456975578589257288491233291056977722612537373543736678566446441797446128562809532138530280994609805687405511687682558688562619360605118661416035885839452574931896378467732148734654659396231893672815385124481194175377112857689588944259279606477910639236879086632579716149982759780793771102797834883250384616531233584056362179652179193667574775199516392180456157255808287035743199475769707167771988325944322018392356782795913584417070529040627500357944380138060932383703530034746316138096110137059891191340547284462226292413080433849483837037020297894179514000292597680319709304165906743023639279931763987663444890416406143601771902833508768824895497160188961265103305531086136280340330448196874961859722045547888322714308356429402937566594138425329665407597731439337739551885889944459106956161616042847331668003521442264465022463000560308946489627990972985349756756263624370808486111702612189459548632357472827903093050374273446353463240309594682085131705664317016529972528461871947157632363458141004276605767151999118489406241410017119393293851679222552889376832626892304302710135961715563905722684542204902766939543486005244023632570739013682540327989272375031804331178590672692848192872008154630051585154225517498145148525253677316816208994273123425527218745070692409241600398841040836322252305228217148735058985284656509115954643593537458333995049540095826663135423607764147459465679106157051188124574583137554663118040702769188824127562416341081450493583313600030680434326452248234212626757737800862336042136361798900294840742362883079898745586314282238142321880759676589065364794846522773877310818256776854442031280803042764180160535803452268253265442795809358378816755973535609987746494049461375006830388615197772288948395546260229878341663026774469885990024785827981885278406002915823979805675916903978902328994267619597210455066921446740295499647820768514853996017148560389371280237401654798378413642840210002423193445705454717314026446706605710486059615345618310771095735819428867428296954305611114248621413679878641871706634554758233570068542321957658749749395289244602482777105259322671338532253509556128549410237247360176939964193416863509673962461222665466953390575880400255259209935828699722880436941480237419191011714341041423691164405907412422797190541271390979396327130403257751454279962507326387526779596413167462744467002980599371643186043422406037627780917178464427335728180293926732621711207731983014613120115305251651711577348019244017608743529919531537329444949874316654090548876083106544038256675009374109759666761959086953551496140220361718756267581455012557198165586871503223516879592823773321640627821094201464148336459597011696916694300513225758949920096694160374534701255581670250466591289929626950647327393638948830453773936481303739447619365472778112361558603450956643161078464041365877838425610583172986023187280436811823192200267694491529773113146344549484993745275262001852190376614442455410769993659695242758246151309458229635653105732571836732710381560914231916512128229411925019002376867716817198559867297926520129096060507491102548138718347598711647543660577644233225352315753447086064221491814242678315867559336297791741196341960770836234725746120477090717012356228362653607040969740203496029033975428882165605500538262970282133490992045461246254514401195204356096650935383493548997936905664436410984367671454096516691137568332381630694022710949617669411036448201675006033615838884810579470148003888126227288995887948490832241162183046825061862398314729032456136265868568701048816923540070131408530805264194460890146803524059011607267587360788128554380358110124760713327729114144698658289037224247862511670874925465659101053666789147475392388890941387383190375534966835312681685210076213512053919930989723720663889493565364124611718771994969934411118911177299826671459841932008361470880271196719258345662339353650513063555677118156460693205742896794792759843149630387083898068532926130400374733478287282713332866672922964748401544138879070420291063290381172879532002911084585338909063631483313316229911292386079971652195339076296222851311365667703830390695789944234160491152205955276500522275055714268877007768374820346344675817565606982010661773283950916773571857585351764737538676886882831350584550277613864096144499995857260052556411382817780505898180859358034549167534385643261093292866647820728548710815893057259909796169982324196360861228545755486454152080943363787200893676025301114155099296256103643520094017339498982635685117987981090638900141125643044074303850913879381469351955702649409684896385411382827332036508360150835016874935870931001754361080897662576178708538293339828247628775200812609770976553055797734274757276763494606330290129687480597395242453586580279675339347585943044427061453954443384594932031236607458832430132621350554141429575651112865888985075282686507652722415319566438789459618468603834119759642213627430930242526263177174194975490730762587840667653153290593282058114695647669078613383187277021140967796299500736612817775229297327996764847666123881870414999236752875258114609417632173536994025260133121872171189865499577613914984303416810956765332068503655934350366574730873723350604032076337752117319221226992663515182996511124499140438568045961890743306478817327952306462974166238054176819204699532009247927288049069578322687631232031912173200818400169543798691322322542635515186524122920754872454482756478907463643888441898457861581831804583107812782457539516969168117903413537993881463090069867470099737861609715348033544920196274177228478976110001829076471467756993632419009796267592181072138314812937191825955940590698443052516676003502159664831961562153144485617354737515632229318234810793285027397606261339929958158433801352364747167651556617130145126027530343143018306495516950956436449726861368172953164072028966816858988253936138216871631963812592971660397050876983254091741779687117212926611612918283540086178070605671770683201758913273722098614012707852731339225100577660815409322023656390933579591490977206219106591334722936384720473857909391180469769574678466040814199893148282417378352936463778117613691184047934366279967067303531766745013413169815072268691430192234645182437537406909230154507542471937625741090654853560248498232771995214733523857370502819789111564884810462201077130158289139431736375142110813754139856177356952736323516199749097684599032263988639047513019112049251097124362602317001982176848385891763431563286210342456088705089427526825653356129810965848313099953536437007393328492538233283559900585515624844952436058365668701605655852823706534027718226801254476247916346628540641103890350819194959137879407721664607056066370207421254253280015702125369621306095739937428227215678438365579540537239033814206366559933433725931447587616542866394286035713409302751995424397354703935855472007596453184450213382400768072438036102885057710711971859626051837478529178793047533381413027430648135297397782108536534286004563676564771711808331216174471136497736269134283323470989865021864553391080208660485728037877259719350356919676714891433131078149349079605646251050923543778522295510745629126758859715050398100648948007087267440156100768398304584224451149233301479489690273880894845422827284677859864020635990047434877561367229827858667134655521087267753893290186917864294151565370210918639281458142859842466316297922398423213933091137953030627114728114650748221390470044282431814917903636403542161824224415663157242738728492996142980159244406974025640610506576918199298855746453887982150387234262834550965267115719124210432279549463915347402524139244958421417466272830838105257137426005118650516852592336380260348745371295066413152650653231871577850203750501705230184577290694551688632825169953246932074031206841339557735361413797664983652481102906505000362395665942531196241281372392553444518241584463273060257857094722519441464152013167885909258590345562404138636061869588006474245264787949834639159881669841843635732314754966921142000061384316813236781937445833734302829115761283473352576332566701015064185884907646178393498104198534857646990069381429148065895023644371673735493347683523938369685100806092811330973324446233862687976139862681199550269478009934587656169382248194716460680254912406108039469438737613643413258857050026771684641207794173611558735065202971349618520838367447248866896406271459215124456166314211720225705840798917092832959680521525319113251137357046161375386511973072410058696113137526354967159778954116912586641582488319201084163503718793258816372474931064522947687032957090793707418036152502315682032163738476237170662947078844183760746502858563246115558267564960849413048059947335484372132751102666830227399821100362558273738685201840575196836428259825589922241604352340804887926759012870915879394626253966851564929912621650486818213023769611923148052297075766631707561927199288296020654503380453951886531824008801027697783168679952890988499880205159145504470830456206144124881405373476414401535978997236694120516115239529924645659410793965425325299363628493805534976490951019682321489753139853801920606525448325310233206090231667779678507217473959647892679874460238154065335609343823097470628816746356030248774841892811225745398398524343919082057279552075160862700924450992910529683149541704048611201610129962548413381129555110953005903320887149784821755821061435353067075208299647412754613620974582979256334386976326650561725571402871163155040983001822524773334544470914130891308816974329604030054233769674213986645300439262308477182654637897832759488200842941774914638577434746407003999264700753946867634776691713746850621738079842764880470585634803162796930263527595439901195259489005584344441634368577216800445821917185405257998357527891264461423672961430054834964484835079616852294837865385792098927876057571386814094427635722669502892609854970033825264967693410242474841062270021836830392933407265772894023128309471953050002051420282686635603808472702423333048245034458971784823479751449409315017238217572098300874513959464991439177071032569757074627496045423989502765638381177231670911145231440391293504850365697124398529884575526519298600323392642332902370779554313875041891123730012518319398823729098993669911087878425728313554999785807338434078044102809883646443620562862753436721278657515334292783709693327725736565658704863940689489994674059529931608666062182405289597948501699284752149274654561478387361731478195820134149149430723299611091374292039318962976494252980293618879693089527848295663540171793918919669133498073491310919223760043329179271963844488934258352041794849055843837425025773116915803368650490306170193765012666704753008207209413183970024027872145134585115014275551376807295436661640416756668591130065179421651892307620768728597011352199270664354777615674943400838844125879666222983715704880574151662472642709295373935706881830314762478329215042005563884776818211636610360512895288073891177987479129376097097571261306201123694319821329760300496692111763015908729743056462157170954886316613563649428031117461660853908007919711668556998945738612955721969712476369795328585613856259029793578426389281240751353293664427771671324664092629155131406446157949287953866977127367170452069862535854695186583558806475901880176231632072944125032111738014249948985414766752490467768595391590922514884452431084500602904887253129249375370986391247741078533908614672166306914624456857816169252460838434380779490085352928966893449959662651992504122895160304206143747716803139851343212410338565240626839539026064134771744736011399997824067163741498694687706540001311709006143233544221329462108264282680177542442551967813980971691009123871772057648605110498998451604369288131553411688265171530177940455547660959804531968000080455307940189585608229166965248289871706280655396934485426024157313410132068080383765880989514038855659859729626595322271418988717366470181781053785205738500341393790668066996638200174601406707665782625055243642292191062975087410424091423645411951009706986167708712503015560533742168087483523325203596969052944051100533913293615720158822538444182578540147831714662214285497867619273310897020618707522101674839939616548589432694378246945086034471505681468428630790531453573760225276961166162287642579095964161100068621278791697837922868027631494932458435393951871017938119916134711264282140785070582890896635743591505718303606626070101230786447543780366242465686433014508437024249197748126242627999770687633821187385061042430329161177027978773721468416244528515391372804950908265738198812246059735313526301187123389666727254570329049699153254322253448433688241029606265673939401156820946319796230043742813929161949433470957862877262451221450088865562540184838333410570865260152993744966567961589028524859224175746634985047097337435647934611494444216890772207556082417597373912040100592420021028516201898801893250580343463862463450648815050632258396943110636662510531340400552045973792854389788134408132255997161875338026091146713717457247027733375550442022175945065219888800980114186778782021106635754797968512456669606273833060582712752090951556311618887567203770220367087889472631871757495729780360167878011538173124022046764944419056051980507472421478056196008090451621856453502798837009984122694755091031698887308578497832529584150466121894341235449484472738890967237076416231461503840025243366827487910985564455992034658994002416510067919551347751817967695683157903060507604852291094506472543667179617517382741692411723942866647343635373926878816746345060381534187188841388972261989745546616872102647504846342715533427251649535902039215296169392082743197079131440538020951344937764478920647117631982365117017125996081594169968657633862379138795814738529924624224976703023052214193981214718121655253515502677138235858854002304731382647294896549642324997628903226851501180181889117513179154732841733539522933747997460957633574297110561358069367203044134307526060801524898102603825247686171533885820293250988634854172994326201697277477682485196882184213582592877280095040112651713344619990208594122102291845690208441469314021281687515237349176745629410305321735871331098220132579694200037559734397022019245471641798008836624071796021694056151283280342292706921773473517882656707942119243446358643106942549774061269653223045469841360613616229546023084067937672632373833742810886342011467637771275496366097425459457395787156977743542953132353802186109755610984592591683314879997320866134031767195364198582971356567768449550929730554005089855952010906962007646206150181165317109053057724848035907782830879815257040854807388510667107697208351322156848261342474007433589361165586490447272056302534857998254526008529115559400547680846075051793736748755969660938621310118902892104586253248469417579546173787466901992083058487200786941666962757812993769356124202262213114855515937606743569561737718231004834914103457166730410808377798704740794158391670829235280128658218534863462702682153184493854674332648609893263225330773958292479493506415221735570294146082267564511473960088583831323847329877176605464724024861128870273175190060938166529913790652514072007979497478601750813802732963959706588358795708003421474588213259248835517816812663090598027632119955022349070188364655426679759229117618281417472719318445279358716395312829219470106333388845896826147231461098744862027617205994148290794088517191989938423245357131886758370676627073547617665015605303718495191639740733435999369549631976816331367277205506624787708028154594617136302823834983262774250003208537546729799708670102783834043352995673992191832216892706051110762408360107626243373658820508443398289731777308512045607646115217257409216410616912787583280848091512231057651424882871154700852592151754307835805496354873969126705819800463720580187095136823483430957346021690700896491562517304353732133809453720576681532293426270763758855383141991521007347361249321540234313996683904000682103947938234794504047609833897549180416045360720943459273903067256888755960069309850304613083259351083216133614410466902499315948499405124315199638075056883680570343864428590650668856354836033511294107855919778645594480054220991228219191037432455196062155571670913877469501549580808467823761220488055189637738366784201773653804362002600191698846695540564363302533989727692032494010332754476672445377408563701748646166320396408288361709167703237517339356629768191952381360287301911934127786016332461850835793184712571350234309503181000161744946237255704111231117188081451983012662379966675996053783363080501975557858394834132341066160787527056652669169023828536522384947272770798140235299899928562316284113666763679464905140484263441945632238456625896297144271447615194420108191180961691401309675204614080440390833771849178261189005693883287496652583812941666089769871595115598488983379727793683599126367196854811721132480423321250226697326580590760413481009558317267558100873270405508494680692897152041867617823971117283526545852442712261586118211615379961983646329115110797471522603484727431031995134332420227232585244223710663399958368833770010732561801645587241739563105865587525759397898203820595928303458163671185271670268602853492837568030774845510220939497255811500496997840290144084833832135994048415307197212992065634425718508480585856590058318438946794438421669762192151358679549605192574965866953106293510603824321795169094489239713422982962461488924614144413668186446412519079710710393496310147142020467344070882676683461529477446623430275237416773054706149830189660047406110936061674392073760555103174795749072853124195435805647983416693286051654734477916721569362178065341503776819545526820337887111675840899731252107329995584035343698706133730745102121657892690118530070096417198607909462303164562844328663915242308647386399556226529858707913699884715407163386707313397808315827404646576502069712919462368214077795222942897066855600992532292554846350227114644556537854683965311842825876030407195349868313519185737951585218272805025214537973863048358203617063259165016433560535873241756579099114959570720296112022910290327576260930835848965440235057087863806808365826876855424499238443297709684934442741224080717449551189227294431190489361664269322127582906606734307146302160825629102251597556843281098893204606252370153707716952842669495955738036012056039466563762879095819162933403800277842596619251224563504387908113360756305996264600575909031626350056628359298267629554848709460998807931986867878047654410690117455775608767335364577758766715710690797259509100479969935831890752105245903573344455770200619634234195500637254681340185346476037162434682364302661610416531692716987410048020785443107795449645937006179020035005881539840527577624875469075004018659563586465610109417672525860075526961315416284814351177642225823410828020218191407640029989912754474906600562410103991772043963474588411084880574498101117348676697566967094105726314605203655460303664112652029738214555592380085863182650407463860110994807009276593249212234263074779067675002526515608288313758569792051943794515745623737835077379504433268261091950724829299413978253529277301644579270326988250419810704578537793586009202980273431689393490810695102570763507063699481435124249702326623561302764262420362389462619501918051251026901592214184459291157104421520285097850038617716641510661628137579162989720045689181895439985191666205470141106714558373856336827587451740206299337812162118217975621649776557077264466286037361726979970366930299734141107381391607170835424642115905079148133963125880599545535230787381490842404041568368709892417284089377875469159164039815679898706992984895070600562828174406001215007039123507560489428388782788596461537201486931166036254263735202247320788723370136936826638389868271311521189104602456804930656647124874244316858764043709884006699353655110255452568813221600400234654336259359409729666691588605166312829601029131513859004472747938716567793039228729245359849334688285131975201956377689621999104810993706270601341054344764256758523306835558342728178577298287303493077393830357050662092713966200563326211322017592601831899697905634185538142230347107053615729996391192380111878861912479057744948968291047880613891943196556071495458116919878756605191159757631418429695843789384808627178836790649850821043719961862160996313554736684632377755411532054674384977540747577842631024169729762690890672801767754737982409817099392419088689747608159700786917794503570060086509015259690361215812169736895022698320057212824766781790972720504064771137987219308954488810608674579562758698071839731861017832982680169729386405573979849676916317065048610010841002912372138096747888724131502230285350686816805327847517632311028562296759143596081755833118391567614949496183460124744275927206432932508113568623346357924550172301340775723861793665466835588630253333055438582124937999434189702886681566000811338355094038133717593532641777882898593414033290548985953213141219606060165970367110843402720786748528418535182041657519873390096257643237942518776795955650596196850362425269538653888437158258711069488713493300854659089379823173981079543329107453916689526849897871392757097039045227625809808080047916436719139063742467330582012717857728429420050947346424467392843147932010519669591523102652024522953077817281546508752972432042138980167951372954078929068097461132378222357441831120919981867338034642870242346844863643438948241356742103630990148417134280326063139617956204294191817348912407675011768483629055909215075878042287957628014933785703926119533523111162133160600837660310876894665548932893190355501355547947523628468843023933161239908966545677335529163089843253543944776601981378423248289685380836967729041684256732004199138652328010080522955087564025893203346233441694824275821617115514985982870785677177440820179798616049735974521652500178753175209390970935694111185551300792884580642880296850261383350997164836149529870802764658691315771222566138987589018847060492383743343054836509845340447264649793664957777310489898103694040058212936866233935982407983467696373139992688012304310914614120413924375564032943378465488034225544724623621318816208536731209100789010056855318215285376253771206000602381686032016405922351877811249097926691516013281807627529216395265886017721943315231288025603531910700408704584710396186774691658290610678892991861561193388386725930658849953267439677538551078109063658104356625998594146395980173863704003412872180686817992087024306830597350892225398838343279190668231436161483782994273274898910086924605830418327140738917769509890816941473682055792203473153478571514517525283273543125128600790214102546362428046276182391038548697870712998031391220847515664760290494174413407664889524505514891255762752525569651765243805107651119251029378486667489746728651606056560328522961694289838454881089633100523711274149816298150060085028847422859180026350085030970496265122545388278052424917138565266344675061928899421644408822070005809245648544333123345214956928279521576380676551371752844133377574139651156539209172655931916187129268492254382541960271466410925846068769040253190502119856108178093403286585409832280010627681731720596888746670008635494934625436354974782366594084652239193993933433879853630807591409536912041103890194759873686856654108223079902473579448195878494296145951123293763892330529220272346855747845290347879855284726072338167856658202184659398728874673155714010287910948614622195346716993832402052355269304920662360148931413803852163838970757597256449951533606015035668838324623906500897747409609390278548905844595105620216366361284324243732498466729387480354422690741013144770749945631658903957767814034491300510506803700741760452064557422122794233046336535328230995037364187203625693937722125361798382919051277203565875797668365380559587968452329099366493408696582687309268628739212903047019081051323204410744404865759589376079726754022303099809261915216777917256358246586048541219970820488206401739053495936804086903081845494120303423253926160750851839490242649492580337744378729304909237036633752844792760247933412514201586696246163962727782312529241163642693194077720264247935794345603751402978276011876916895607472036967635069876444135802059922307042128233285649613720344202361660381433533909852086843887572295610575062465988353010096960745132999002347342189570387385472076951071264437806718015217892178690721901470360243916606605275148530857014649712850321082716219129849012652765705518271052615007625589960069890820259310301260835646021002616625832595921703206319401344895659682451519942977359684753082311599454610353683639858187870008386549374273347669859349214551471412417051551380442843673665984381683776052644684757175811170605993092047455744801462237934102267023219115516882790571009761967674675360741141750069467004034206765972266765682189660463241944667459664397124344625451290194143922131966871401678517048860303388501330109590263269329671808304322368193108854434267587120484010957737669399142794051478971224626447752791785185720739037217573291203484008766714339477635768696590252673924798984566761167185585981280184077810176635971253097241649756878845836046820178484863022309462392475608009285465295616911572287587384818383411869295091339240709729009519313403021189775456299818184673483288528523565904916253552082000465398757522853605642500040773618950705638625555099744957634261386840299334966447191835536135181579120724071947929491987166792468016229807137106766102006825727073258097511348318208220593662070939892100808363938062942210347762585434302192640451547678426631732070534195128246130098571967726456535913467724021631822694994588387567446011860649957383520562650621889099916067931856804578790150554363772458701830523377486949754257772922596026291483628658012800241792266540411898642413807530799603426570116766836035351901178100728116113649404293820900473447688004072703119217027929313203691771088149940957701376948358382591948043479434007827411731109905378094530311236105311816596092534569570970510016338992083951436067847940024134127491007620039893200352313614013199910252523788651457236090973184883141828434826211369662060523280418434791218048025451470634539547398751685086182622470743383422408406121932212954588062367429514118566388912134650944723179475044356415980065256057837503451730043264891903691288551915208994647689301507858641853618540554140721887330565328826266873887617280501363053212422082597660961164685459365976645530168064846268296969132876639986126417564085305106498467569622299182835599058893501147381121479987680423808451548527410433779904027144347705504431411540650119789608015308921625239556444437245356270973086576623474582327200887780696834192344571967623903976308454825556743847360188351619969582775333157600042934252539892742529143039998106453375547834814932974194275717305312495513286645205980663895867030699074197797892864434956585188968228963684338882110009611499163944886181616010115253766870312082389068988476416338006459705870614650767678374977079325752423739943923194475700059230346653874402420870163381068934570453993996762144492683894582924342185448077050994222073514639322323801317176308120905723764503467770174824419434892858099264626484261680204207579746211874085134418424858807381030454582718129848456962409169957444354594974551021766684563582115459319414826420977880868805983635642147103057655213131932656781416152836016286444092079392382756641548881283342707229067315589571342594171308666728875930590668875014308096538933967198338958917769850086422822300541714235937700237847712746069161621506540054140901374933949901937189144106994547758030649004480753746620696870827378582098798942575075792892677711616884367669540090821632116884369180197646251399660446988809661144659497501713966425192155906513291474124098971011290172641582897258928489593534595544320243985650340325545563913316363210336126906425258185263861776187905243151684283276554208000534896058063804716297261677129468001329687080364477283066507610167784008308241441959893540455948552430775721996843503065039772019531001768195417681055172340888112713327447254801254125222356628363950483231054831228509928156447652810654551191190012072258023505955289562059644257716399199098276680596593572504527919631604170219652248955059729156962200714580659846215533969469010371446559472894442242509745092261994852169784390567157858877285465910668464193309884335677368561813843048756414369492211074285308926010411881029221593001864275793829490500441991013195125471826826331625918578148708217818393194833332995643588863936498886150987906554620544620159479627444415251726752060867190838327762343354279252705030161160264747150454366849996746150776682389572791495503409876102599698605664904734481568842919990061576324835571737479081274523826772931366533895771179614558580734655562786403411683032072961002471204548584990327831346190519949109923092189817787716331233535163022750367016406220235195163693104887133986807274256312006709967366859630182202888559204626059881761011449872974966339777263418856158485533830722000557913346953486968338533121592474217217260188052382134164492341066747733164720471693659367695449384135331035537931117262710955994776850775651920068709102904012758436786232040564646217331566480368986431656611397187089248609350296850510222162181195037973087631719077605748599104771492984359421949983188187534220012056640763427579699282606489681315568304585586554254863071628905378535825546078695618786391927156577469043713843930196231712579143426901664211975417185304172719537415028729115897159080323882960569492883352456050620230975818360038113338491712076569635033110331793015699402451766876478051062345240022783153923409914967339827367412413456547318360860992296310138029303930204716085775213457697156259046236688827260999836763888781834657598061367059985316533861839694039922050670566698827817598045635472253126637987358351008289792474779438724804809753483148001046220297167136091046219965759254975549409845892909462102571581662678097469935656006234007126627125447658459533951585682534848252898568173877545899785820302978182142707594549429979960638561483324001451819780444685189867350128933895232896138767105952572456526949722817046610825816670914517931864876404461605822323472273198761725288857832688772027649668083835896495412809169018979611453138133417125990420628159638441213564711183013278101249290502448337797961719158579825467420366725817062417966771422465824315920897299541697832590394724276962789198917662690094148955491023206736961205068524139257699223977858053482170698482611496339136719035420643427455382897362096448930290386568402160680415298077507498327846937307667423853046303047123118241384465698927018229831835180679086320304574729084906379694802968362186964476300382024520882578516018132546142363713495057411864371205627844918890318469093242540771316912696625923802475434388539157748969023329854817946652758441077027749341559982744951515419045119183448449376577112555413942384094269964292372723501542555700563251478542544649681604913494942190221094171578938829159354469928283091283555955656128568751662351462664472014156741410130663227680067824973839629329429035592374878387594923975710651253727779194396831932191674819656867200888420281036713374221411263333583531453295970101501875065491781349365546140309932528307494961999295620949272738761427252504015431051579667663726605746280337516247586359674585795842861830845208641929728246838921770014600308258901760426752956822460888227356345550993974963488894090184231451928524811005381228270670000806514620025651441877124852701212992800596767955276008482477557068137741184738062589727957969404927925597461426791455780176782177483224111342454421761667471008389589180292200084637117534145475400218355935109681630443017570813284746793695733407091434397241907119330590627870537383133389047979781468996881074717396991321366356351278721731201756751732857377488051049364870618672343387911538429660553413012609078475608679709329237611928424068643789292985684373663719661041038045871640204585851275510964524125553580232193779148306610206556597461413615844300759894341809831286215828656521196516676230662278595365092400634918756574395976612324539279130455724559450216449683695229864031559563050600256860698223616791073723339870017229514313316463010544350179809596924802026806927800652298904813421808293034224250789181420261234029401686554117779344938813086037521830264796243248309773762761403785962713130699190117901408820061366373635076706450952090385650531793235642730650654137331745786602274721010401971004577763258443535029440266976076714094983121913111697284956925330202958075648714073636677554893968127915897172428562058510312678094205193469045611630432816370206362533772908339044665139116207064495952537820747104935732210305708022211100956595324064541341858468979783902983202988290455649799778323969566097909477687687331509155213060520629597698081927976873752213267012186086974846922655737085787006945285093094944198845171680923798783587582567215300933142287496124278908165056347066658976477722776954951226748029137371089516546974803920574117473152987293007136927559089358793267006884517054536230302709701512948209475947623800517398470816030562742328849469851283647939863889746683742106942333850235837787605858873643269143530168534959524873717835323875280466318083662154660167248178187272430154744226203988571780975742277123889958304448007591646725657945909545792015812985119492512744509573843267249849520842820477820634935849829770608118908815271123134621154318048089547511381756475205996721392335238357078943471976073623689905618122474310881327519585980514273415481255453036613453885608548846148998472955418511575124625759903931168441363307628180491605089763065711750629241035448043929472811787819004598719684359524887070283452999478900558719551394680652612244771486978586920030704764298998039562626527882783988703734146819814411086583505206291868632265378296191310967619493953081264587654829336161612821251884316234717803872040368650944400355704379086905340816128194140249587206232785981302568550642279275662557791656813408980368430247883301918031811304377150349348448617240294264235054263798879969135420751325564298928965022827334456333696760519535800561196823818205211169985676955499948117739936938850596242746438540689057874317339475808503998331921916741599823914694806895769541878828346155859703056411430608943097298125314293872671644665801773422135273198594168406685414171973915682263000856030637707497815239131183339872478459297528923749127877832439986483210477155957364836740206444566252742512138569952073371043013092142066332419268937986249929965627309041184652369243817237175082959262373594306191955536826725899950512892543261962104494844028223763022179546411565219821358775952573543310061286007855743932893705237038687954464720262096071150568636516493862087520575816699831677667772390526742089082738573286867102546750427955332662685783635161973093226167429929693261447085207978156916908096889431918063946050536167336212922815395380062939539209149541052830339993837051563083822840034672161412227831076878418534482293852671206760450207292149565549924182299046699323433037334231991414548764528722773106740518492711250725160181126224898803129229144106439100263546110826912126213683372830086019944576089235695306672736659577861616447382859252734627207467201386235010502434449256700700166308569439877640274820519777558452568729877161441184969291910733847132448995888092133679215957376359954943769075811067790060965562879484312727818242192816846704132902955316870292055307633985240735056169292462450338811902266301234426681872856408964600733090391662093951667938610467119221130155496371754689587444173021002261294284595861621694508463868559949398136395273278504240320209536975407012462829101591272790618773998865531840281420831370543986715168478158606352925482984574095411251798547332570495491635703106783324610509807474699775669110226422015971205621032651797253345365409135827394930012309672660795235670317326595151115123569480319492697994941336883282046151662062630512144701373279694352854977794732140474604971831149254885776519945633953982399490923355075535959464571467140848847237330189858904656817083173801851044029375817545697460240145530432103120949226777129807210013135272510424446696554611693761609988967623716879675811570063815547110402657247199161508417083559931800065575417659976237418127969736184540352779691606847741661867896142592605306118641329315039448209166340585356632502787667554602946253272402501217321738879947142483604951319881787948839332078599279320437690587117606801615499606340681873151131822588607455981339743697631508227476063835245884250397016187859410945590356634789277090749046526042892239907601554919661080309534837653416654178012504289157861652883703295539865055177198233639000458586277187985509857185700038934322791193897415732261745519974952473451422368163617558875761388083019453949924472583333706186238694788311491230637812039436894236906830695908264616635433591170001174730140075276107614658461373716215094589599942561308127489280995349758418559246062882768808089272215391585739764403128897441224136307813198935519436872151229991466867731519988784681019641613652632961968813032179350132478067610320954455711272666508940790207391659984371764192648435115015950914650543858285911860711427425444468823997404300035313842292165794329828433458477129147402991412107434980532342483273049195041476813154273390898404075440216241551808089052176483999228148437573336202392465862562906732615069722305978665497478979074713138122205096268431717810344621454519508386413113017034387346471211950819301476646977905202410086474006512444005604270175884044632352003951319128190804250296186446964861005870827629534139243404379496763667677999545677177212246085980416582662454757596641430162704415470795820017920110538949408274498707154618816954861687531791126435630350168559664208086203489615605390437657545253070119082125709078565286772781865664313246006241190404779381506476450589307394718036568357857892376085197617704965263650523582662874982406911093798640377541121878425217495413055505866197634938843120407389351615049024150514893087660668977252965495009970183476812463879020392137281269320494498376814054596618661070755520477017919777998206823020165362701335462999380482791034894316367966202723380266895238331357709663538671762801195032970827377650288605368956202902365797389850109066147620136381319181006203403182436706130196032809684970967962758816714110690908672727640794671211459090328010787170874336306571988924205672599652398371486470809384266465552916188698464580455533165850081302155526523741588215277168323989538312732304454556128839269487901714297472440757743385263445736092765216648667868964819825465211112178285997324650912780891646176753147149943845676341531243847120841096757448227157284565078985791514910604577957131561524841530384346734731264117353410297916099439551986660690575273444148648698137545435615703802866247075525592290283643898682286398699025122768985390117187700749049061831979130814910767810489022125800082548018316982597471598342046097381833552218640804158287278799852577663268140628327961685145139018335439034979825806905081527392810457158718740638394090612166298134648171161992612788943381032474701746342616986666742130560266611286275070661913496506705983865232171716978922931005527259858989522734781193673112508748943736444599809242818841651146619235195473772047048523168451297593579993212056563342777382589791839623093632954303661283821515912794895335326258321879072460025651169571383252670641300537164177666165406239628221604092521972192610467195670758311965294902522223937686510130335069235395525532438525074542772258622577463243942559335046471077612371305110807438192225780960488066531542531807714279323520192828248621118417849859651895154780959098792882097904697106920954925090278782032972252640048954251984347305637309807973943992740887551016101445755234425947263614686784316209610811953080634000683457159754113136369798250639945291892302661271232510520746858750837498708643752293375541956373510098496456818647737645702299786265908880845969406979880752331456424635170785253161327660255209318609192708128319151448164241333394146971805772372442431180485363302870850369699892873105265692576258012674936670490137854510795542422994770161614668496135268472142122205290756353708336874385489115964815199276541296741968170894212027114275746802678204028605906636464037116174023683098646535411359282978253064414334551721301381308155444310776342565708588235606299042304096936646969621614008782564475925684780837074126818574484139749393987846481595341915088739629948085414652100371155485699015193033169701859278066526557483355363294196315368547489091460825304614118203838406924108567452192101082876258547707658622355042845066660331439412385141881476189504774936333743742856421876032621824235441276002344386917871635473821155701653574029588991715413792954568903736821391101219773976726117146010102663078161998310196874029192925164691416773666346360160170260753551154249546794310291988304501115467647394855688319401105734921261997573823590701915715402280125005711905347030506307276295341737509380982372562745016436046362431953896699866647377315929797885754242789429819061891522167060831083244154494220050971033737965409401352517943010118716487412394257628671904758727243018067878490587838302802326812082651378406659393247299867945238505340941388008327811557727863843931338044890294795070341975745561868861448311334377760353620222683133584782408021878831168492858497498193742988815209817886373387731115358969892080891410158861617970094842120715094037070493082529982099887429717547896698229317141060836333916523171478330734794158506126942820702519365311152062329888436803200813852255669416031785546935557195361942545393943393391736723770372729926322433765779923872535493841012716260514972748685872839493340610273679271064273722949399312708062721911149333175324981337924750808279971923079054034405410724438733521574556909058963298961041075929488877697804799434074896034177673814497625214601039356785910223142715443027745369177255234129444844883903380198068591648677107618603469484858980249008561120824692125393186227470549124142603078282979330026790303722894854155441356761305115113312775756222116722778046304568031183496820000599394564268234111745647333847325079430200949325813948694298148744620298910729081387595120936448820318390890379398236896912529700497747005399478152893610436593270640934912786644721338393526777865712579127213819429069300182295631132908078751492624521724089354627525123447937632616930323902934096723718987812651437910926898688100412943599371432264775091673600584161072261422558686629563392109577064952966316393452217288155716154142126231173044364810324284313995005413382838719069275638155280563825795527799747898700349258115263615641644488917077647101776316835128469195923453836688948260554872025600296800060106046931950810841427822787094310274239241890454922279700987083956348846051029313388476214993406124228426539825800138933186403964411825769433332737162674536951199841325327972716761590783224188094935794185191965710874234021834937557883872663875583451404478672355569311363456028472165146800070564876295411889901920883755296742473249767698023583511553742934399742322009688385692535219774214769242767408089770295003496738542921321315666018692964799303643549491380694271018185510148696555095973813878670942577115772536505368754195406733513491033629741194511602884183396522013648313091283494405096437607332774035385239879198211204572155902284894699539337190278997655283083629875374842621530027339515465887346950476492728936591178902051857548300915225306752626562093274627578676268875738375749659212596328039097879008176437624036746796230090908822080249571309028801299632129621143488992316500431642982066718774937354283984083013353472101583904882375075879083172834848875638741685994397713996856034834875828912682704367988295120259949441615713627015363622598978755618445356875199726032224112629944085366977105739465973260620255109097597669025098377297810135228096231340358096901030617098218424259942161052683821027187849528973971699116223282543739536398716653691042780381336837343097412639910623438468176748527756265168489528489363602750840124651168986479562402913946059235831553564247520979569502144752933336303071325120009158684627820769738098144463859710676573451029174661625609089525142643548576107187568398780060235700823717276902651231294068945533255618075661653887158872840870863585711541498447495788952955403050020685316872701665618233281852996175002364937300771103429842165992142156438812286593642194753356093774713725768096707854668902478572345030345529082217257743454978528678796328036900620611267914692952402876307819396667452382497567888814660368685824269892564440930012030327944350506055537489902006214866200330191221718427095983725455573508738412155449560266935418490230246281269199766919686846966952027351497744424340500949301289367601188451071071844650133751032598262528030810433112884902250265783390117839599331740888731134560675852757344978547149391466462881568720809920230376338992600489835293200135611832451999586093439967586029716227107418066937410773347967855995153037902659072632180353718090241963020726975997687789528974400795236529236355402096277725134684869950250663340788215690170424752251138351207832460503842061466164011091095141324947627057115116934312830808014165198763452652670363982224788814191461644764731682872038990024988688931802935013313440233605034531410086211718231341926168933829119110879243835619010908150867169938630139427947472135846345874473288534030115252006310563230656856350558345408618255287174996608871985129002410960612472704109343806578477147759982610935166877972455576288181952036292400631254855539288253150808079231057943861709903212431418068975318071187733649638917446049516948382928613957467879208999468530406004525226021755698056069733948627859763224035067351275861551076614476363202797846912383150273909853340486142195730061519877780417375174780073979371606927567038678385354125491743617079688678363231771519800483711424423912056053346204894858785637015628696969927786240458827000342215981250529175459412857478489456681557814751692420434419665646154382306434194803112147877490714572015332573279293345075463908350087039092307769014063515276944592110628483108105285309293088531491265772630785300481844977261860068164286941512994081844831233750542815078048934803276489979098153497758812383154516913008971257252918395801952008551771821753355382344590063794013752046596208543782277502755325305676867015890860485782554891796345138488706978302266141991691351061268786350941331266834406022429862428758356102491340217551371322969361302991311260691863788340102230724303565389096307581010849951196263837082267237017096566364537680765633715748438212325955895384576398116551660657249482877592010552378693110707200986568588104957266097587788604199836103646548051669830777961583586367537525112391316921454446714559775769141252145947250254908999291859081755624576802764499275936153267579220860068615376858722217786841606469108788252195223255969501872580277718517080424057520641326705830140995715085115518488956937386749346769739250324151164404564422585996565628283760938381952601930099190595525094244092754012656450371561354080872353434903222472903685399712049559714617703846937996536512873617610709232638487656739151418906368665497162022634692393413889131384267928612200806917151966911495661016511708980246071696154763347275597001702723157584659396183966780604601580137237784286522108654051789116814047951704101308181342179193010206952670736516557295130131315487012197114771074299020459905051533518246575451292450534465213240734820150969816148900288780946915808211840465923925888079340805987615366655922169036753465514226960242321846975214569018064227646350512156368077837260694206104175287542890774264290157953424548354714132450657492489588200831207316794106875775036316939381653567746216020750716220921607400469179061866996370941382220522842528211544700859305960275363505462626781560392298068393888988378838310722598211715138528420421650649063123975701840080222851661109394278560406217738724456925572507830222039940727685937013200226451041872104582153262758337061556419190461355553712216520300832849348590663489833328237454267632958190477907103957821603831713512312609023561439792236853291766855158714260504870390698714713173850485019753890507491747105165115833320060664091955275423291152132643657207205212198653246244656402881042450116125941428091972999834430994297794237979372106789404915339077087266432796281815597233697634554376087462190207497557718058993574366502434935122063824069959681367998067999495921965586487936106666201748670084792833564219868195793524233473957416736203026643234621848572322390873233808266060063972443342340963009410864727506268743968518288587898293463821653576285790324018154435785468810545586816259854308528030401149301464257304641651152133349822202175651205390991090390862372521978926104718735730046743694435454698807796247016204334047266275770210838054910271359954398445589787584476030974081701161195762875572596389524877646812420333395648151320173376535384624943797349305722266428806552588834331467837985343425205853348384588070361138906006229182152332867028332493376404047996031803688441981799955279573718378784366765594670879020167372352615491976991313845722584071500211440407529133052614808305952984342538200292897348774344839863787535832488438514054020523697006248846005491749065216431421038339070497950725289370303840566403399963574244596611135293855868220528701132420994921307208996682290960389696469889062433130113687141145710907070340277496486571819371734812871226188800581242325232906698825275154014793229926023480839478353707569306799689628831036355376191165884851113803154938063606831006068477670996377194416345095243952013576893180571287992009316886611185384588979858833537899385568915183911807170566326432589232106191029577518026512983498831610686373157731254905743962159461329388222001218247547067140020237152015456923930736135371154828428540183852721280905429327896429785178201054703372512317467562626859667189779819112521836962178738529141131950178832691147907231397286591726667237191430910685185958998968042820197258249423884335477661618727212664928217723272447854768355480891447610428318842863867419619668861145985622695350871802821357968487944806597824421509120690665674244313882003454932079483818422365142053769202603469174436810893858651899273210060704552183208071308034754401959813644440307522461857734540361200958155503915910987537085183795490229954129699532865270165250534715024246085820313482219835605324015758006243646066643188389298495303627005920470440563048687170547672661991388019237009516746301088339431865670476700126547684380617945458300287068386584589360875246252607956741734522909871583742836629672412412818457899587867212990169030692990740022616419575879341060967934587949285052098423267435544970446643724389746944585711114073202950880061760110133687609114914297216682046953272805658365003885050547442484187499590421561950189504492148095897522960288930515038117386375868952236259481707505925998689703417006872895139783213253539083983684168777295687264581462198881730758899149572177428699533015043737148622474749806489693580291511048245790440832648441733936687292195869535674972109531383937899913884953697592465108082962299987403323495071671718979146926357507418173977785615233929594462802021363507728772118023979141067069669840720947798043488583492864996016927674000193658296544963051813775440173278401863229227581566699978964066680482536877133374869551645850018878903884050984148399709653440568361307303762373855416279554295886021306609202963250056460615832936929525155096449103708952063294127754334062557402681904749882668680818000394931759836006102430650277919587231358173455808879147909009174671546533070900438533113681542595508476558599825373900277090911984053156426516383937391553564681305040601676140951141609806394120212118084988439643834191260159730743028689636249803472064554385857496596109352309274188439758637667097324800985059498553565844929372295428302195431675605288332258810918718938058616915953059968377528226862228192174212893160238850520021103433775944174786829597465176615354152644119853962044129805461037366144837022111184267701274153082128159858407678416743291324222750500511203308253224550549744520016210536768021189528011331723798805450504329432785441205315527813556582510806015401078719584704888568983718145120148303400790015845653387086766118329932500249294973390248838068778249250643884661741108915918175126962322048952450426295310623468092639021351774135804535729234646350252319660069541697673062958207150889965544782005480999447413665470430466830040038090802947019181434288045412974620750116055707038591837076935310219590033453942909538797698498064757131424261076493036601799299821640714846123205795391913331482680314903856067333967465440971793674614529544224608505942791463075359523484571125202395332603244486774645128011537243822122748431446110122983567878086552535498491921443517386903763245670623287883261236514691310360392021095255069909129678117367887737104006687933014348108460908024016764183010092274723265393737835307090175698568161946095441803081916259372158509844603831013812038566762207383186332744596802282496763999711859124778928319789875174518800196423074595559529567266934456221844372021056442958264569760223434029863344866851681942234824160637431272960618239893222717691368649661310108862140764707199861678706886585711512720375559405608207247594984134114489807945425113054786363261269250362309276115043157158869970950619300499186866849764578674050846741280954574391266532410042164931554124459409865620159775552337727181708859965866074916622799852928229244411064956278194282059086308309412137156756033568130858885161888719061324625555353170938925780374513938016961191075954943715535093427388366187423664782502511228110502002731718879698458325343056585268263755340950099362602970382491303015479133686008753589057827758830196481986310427489391484607053929923563106154897327009170902613073827580430893126092025235836828183557689139863061331194599969367373666474850623264966194186218955454852420268617418127217793419835010281353893904489732378569234454077999841593510660701568268656000089448863516090424811773649932314719641712381609809949138450437325187200792198649919793210322497063981342064125474454215294450342824632294298911249055205405989762794510046492103226024828412755246603020605452142588053546674067102666948721107856588309297873330824464783675108143343306309782707916767419782138799824570798546549820415222593599197522293623042801054899698907191920777133065916801971357042954669719663824227509208319216672549558627813586558100817265929297885417091958295697603920941016082976551047732868961916053498786813997907857940397177246944527193936918125427972248202655890586634142497079736876137698208046695488880692188600750770548610101939045975448095889076302459839235354979912388261130687807328845862093699570016484858587449900484163566354004841311242905741053409547623033616340904552067452558523188710686332924648088954489479558547471975083849399045222078351801913371439387247388724292581382733163444923260736265700584443806585330340882859675485441389928496058977817705622447822531690285578797736544136425650205111222862462448201615124407753104859114162466031608503271617430677011739792099364126928293017811519670188832324307147789612517180867219364278861927575262203573292380464503318047271172437608549652603466517529849398289280836572889570816711488867030823485032440970638207809356034756442011585887607072786201032258309619452534386154737699289913016383182238912432617829084818736032881613352287493148347509161077181018605099926841081149719928955402501197166174413537245868995865415094328087938449224242241611602520870705645619275216267225235494796617347964429157116935959079376409375461209695701416560127496456431291426074696885498554180769362043450430630973835335407854496891964034040474419365056468691256720135952512743029419164377960097387217599725003753996169617542120798797271969065996380584117976048308459745407125770130312317800994002613613474224011254720736466945202401302747692122880714062443804880625405761738771498619822195865544545119357228274552193721894149302923519798882688151372626881676528059953935788268194789251620245678794702457904400752940305940618795441129093934558718880249653761110212280688342706480339033838393088380816545194553890639412434832604432316575855687750848078701882621904009045340036595241406730725229414950544035315246555441376529736015860285353933204738575618707994970245183545819195883658047308048959122491056517621596231107447539239091684358573651810966246676005209355292428509962643882107037479135259867946425033757876824186839072247413949478977076214620762679860458081704784412400163950886693866246705155006122462208719629216639567380490760756636495088366584520747447616129989876241110906734220680684674222204050890186840315820931918557253701424935182011115713653610894506923121302320916114538008556481697561771755153416641971043774753658082491463330146095253672245125792448976921468251943997330599638214872017744601573017875682993446931956142257216390427263984347447906623062115116644087052682494075842076842749454014648506372960410994072566648224645955404426610162180386288373342815378081397719422244611546956449345966604632244884022162594286245112663823171603702129513164698527710534031417871212618564100518962508287581760861673168735580172836992443777524381989609026411619788943027699120987318944906012448676824845098683598213918461791325216306078988301524897370105669923551236052076428802891351004714801684170824127299973379993735356680024497591292537851858280093777952963320706972515204986350550986052689385875729051952398236713475026394122179950202796840377619562033269836540736378589796017139127212892084190370287413877357151864763504302205714437362811082351163560484860045629964723288231936527390146921819678276613686740025884188325763642352011619004014761048113655542968352357770259859425748853658998833967215696254389149058264803686025916542801622015841648530407685787214812989284056299785893049075485007450156398770393514219330608637403562083331513405470456535387485398139605424289831420449047484216958028227132302490668406395927840305871474945137991897799944997247987388425628307192062696127036879067449945108563261646410533568538231739268311769010098160595495014425384105315460776241358283104181045954659318460821832842588258462617642693778867411831308227612757762296588232565870841797316708529729047905295746551531487691586652648536835284520283215356386736132457904461652987983650688477348948920990013443280943299599504626576402777290967158006090900639626456633932128588687642232152614937445252428496268169525973308774797808388136907735374969224754922448779576719230854270333632357921025733817536232366284848088818034724800879875366335356315344052734521148182784112651396161974231033227722027657233110255705712065310102820692045926658307340461637002870307831545271267612013097092098511054933038172790828394276213641870368633483964122705848651792492614230029690716639247407581752909856719003500427839880708765682984676244527948754251966328579525443037690124234367425722185969868675637853771007994081287453067708907915337054739053528418718948441828461186364490276239383040748640614212555631725709150616741316218772537426384913277263648726343088200123355447981984936831149262408884376341833952698817387155490028999924784037246345976115359868089863831296834670109320738181800962268985182084238322228222198534453558578591250016075928248659642448784434696037987189952583532788765156079278860674922349619544809956411971932341103329650621496801874405718062236070693916039951216205306524236402137438491601258145155476922021941436050202843397759403099609043133456988640660510333017987172902209714106456326524121458070812869983292051223747852327689301851474143823505564354370542062512931146700031968734818302408500782769527770658633842410164608587463474545973655579864819260850585277943173636446054923095204810472400666681696942132565819068887383967473423353701084206292289952257442728594652885786533141052811978787588618481703047255822675609509321809186487172619991132498987842465912580949078811226994726598114137601665381810578359854194918293314512724981788637452850541359403320102287752317152530706663100232716334071797596465529862316484602493140215318682937410772038674906870219878225428134767961271633744200092821648783538971456659260484556380418980699150565246002712030295094075445205879527179833698936254261231555160818608043214774292377948789329065046275859646369885739831456063402426643694714761434890433090049499119095778253030862987482053674780515837821688368979194228961362716082198392919098096612975525326439807744719087842490733574041902769765609911662523044802642904813019301982441457528834295851926715353295446491862283828040976815559451617385354856378789373167166507052109627087390910997866340678637395707920439836760267661772152340002334374597222127052804420646894092442221781414441373695159062839343196296689898518820226112464026475973402828829669573579038536148816790018102872120942162989279381001141074127894013590724979834540434059189905406566217654940817152719835878632901495405613811369263614845082495607114232800676673839406935377505336183603897335218045654146528504696000969468912037783341512439800566371148519328431061041765406749237174528956849973761742630974225009305501912537619977488712397796733624293336795871574084925006980075055482016505663085721095193991995766506304158084197406676336756806065169384742772760453309983194999616045859171232993200727147645107477553016086494511178118205638536777882317853529202107794686651991413544479828243060887971097977858965106164491882257366033412421762366857779806166676953100158784704871114775196479865960335333006713703655110669671217314494429715145593543277079257008066748244939241348856226629304354048439595447759064110783921537788336930630741693860252049905600611206310580749983884333005695897280676133324281200525557661405753641684915114032147328264741649700039504633947682367610858778403439794966388216938406526108470281698589028273009541861174683668666004970560103841941060641835282012582718224417758057198658862936498635685611178951018240232973456735041500409331677378073186996338738891117254799869604980163627752671136223356201627592904793653988227313312519492384674804176574877363064546543111901985262338553190699706393702379865128545412599411779846707036923992861301654343712896129566166227118907029353291842531881109246752863642395707590496185340445273936879255398216938221038192863074260300154414556878157390271191420239632277290676377551744048847340076842538742683046702924031330181360848750391176188586110930481803051543023610994108503028159485085781926419620598704837265480560906113773784911657364075176663736880342238893315119134341178979985859884599469389589279169127789349284169297608929523916902623639423619611661320050734571373179898293238894433625212071872917189431419042941541108137659161750000557658611571506923822213625567677558569447912261833631243277905619023079739671232063533943606812427809192194701472698231368594509539659221513431483074096081845028910465073617738478671098732229874710871856807864718193108550626176651526176667048673832961916164140811330856814873964923021053021878512038386347908205280355083372556590414924754283823594174895473937409007287996369629112751754905605772857485633284720561145351114152273716041433015928827821874475637696717821792910551525363091270383542648182166103786454512242173580446969507649550965173649837347389482057420721569838640803902500956765761935375684153176479433929719742245550946105875153986168675953334837787196414537693741064026308549456818256142058739136466581573983726405197595757698223066491263937705138739113684735646322968233044831735821353693214828895986577845194943929062812853122791990857388374122874152297366237329629018099971856910487968696020367648934813873019549227657949393154344161764791820843533491489789553663257082589115836165291775767559655807444533035462715209470924561009432481597209017915255085712611286857352788638260786972026207158465809048822971281288849116853892338782659016900291920084588250515960619565284554350207945302885168164352453888750111715660292244294603427715726165979801007694384521716058447641142542001964663952597114305958124070238985620173969896088219692363884069460319392831460485870578739429460130998221493591500093295600265698419726309411892985721813996499316008947561561345799280076469623121962058327149320737799710709959397247196738617258988622811202939973668312929002268963250808511222774853239165976978555944625527676112998707848537056453922244455135642711439920338082404614844486072021217799474126155887249501009743812425804721720673642336514164651439229048797729552324277975845435489944606012853141663157391842445614986917802335399741652275838267079891308743308824684074068467110867052090919422486585142169084145047230969887085133059686589071251547601327913351867254563376814432556554245016494670108556033845863961278782472221827645608271241440762990689782785120957312213532044345191252008937477449976921022246707602001746605778592768127059488421300564801243478796192400251653520618741628455139591802789792720688239679996554974138536835163771054374963932551477526127044858389086431512758304833182301800196322216132107707599066096658670202102106048937033605235702477446908269541426355396917872685123784266326153086233949705388665737734925056874976004452312138068314193940825767167557507015912111425288499544471474933550327549343746845411789702493496277368267957177894631991013293172304668233729716065820444904793936956997197462404477296523137195695245618159543043386616607105719671974761195389567073549237940586944574493725136715253832739151691396238692578939270857149382259591234454476656578169860915988190401102836115192823396322799612489820254954094603608535957383532816592626001806761061134043982897846586071430044413816322959215304040930832224015264782639384116806809595381476281629431307953766172662189228055233741202712198692279998291208456840209993820995663947339333472790050251914524351675890724986464688315679576831417316288613835225105513472266934247842659559271208923055596528023417537759354129371031666665063719715510361391097848437594875600832685237281008429905995072459842630243227871369017787212967304597026292902987458222513062397494130298371869814762948977948538475830067893749267724011850255379397968862534274392893154430038215716588929985422693858849740587723365603474168651001033076493254400471516521970640481056239258395396406898653052672800865966034467439291119254337665568107820124536128129670504849600437691726972255167965769273073058583681298857111909977540811580532766841609907472854494048404970812314507963610168779849508916109166423615231627787095471652438939453764030804437453222351351936205234759976735303506669797354884002414127246445722764682767943191255409009065834756202261377741537293368462759127265085523051753942005327151198952857757152327293058919274135179509601005449385714425734852751814386656322091946441400283409508392780883407595962404330177827181504328398169684522079885465795208743836100194842274191524827279182182592264566368974087456307554449723875115086597403929066804384682035429799244479539776085795156231485322660371701295777769827057197002729019553506425308334250830299384552184396742423164875367431526782757530324867102835176165947150858094279088478260297751542946712770433503106627221918312045808702910401635195997776768590752254956662203549208800323303090803041801614643172483225086273896703721386597147903082324377768904925076338817479149499473540567100290937431972161307919188456193764976948269008604139178824751218635345640468741969874914641195135340454224652716954622846332308434609618874001217753778727200544662083694399907538944557959305032994057498494702017644999332050198430451067400038259037300273395116161636948079631440677582860425027851671538243750248309426673966648900965121566859254651511636342260573830410777554024001951770450725315764015477738650632807423973581880583036901992895574747278372566765247009099633787338843495508133793524985159642187620254476495494319242514350284629392914685820808773899065392321513455729172055657735086455839387147308260322510528261468751740107535324620839814523437450990389113367471832631618964648929225813302214186089002039540256711449995859224374364749703372896692065679652934434616452026357493532432254470557648860404584215514564250726952770056958967928452135277924089139770948893439380663789367747531160255799037468606116717004452896473999843879305539712537990651772337122042838769536656691498986626654947192312140405243467265813072941796951469918089345626475790297611133192113062943930346586836637031507297904600037166359230989526444450386849482300031594517309332120639659686782334641293554823745105845114882954704443816307651142359102443718056623974397477678390435294714089723414289747136783829933415368159873484659244877850584581399346645546212175942567113449581451861991623109205164920099958532619119587556795240242537547558782160544513299035445115612195884716906799398392585073371873609829127206091057885080060447209800296355355736420279754355335712613545222510441061550137478848270281359996415153267482704953857172926914498138522347115342810808022650881176357021194160852849817262249727851977250761440603863076390128785307385437669667530742784125261248115416184609455073941196900983653320714881104713766355573740923660827708616175977880673145660849027527905285165401783113800799491353086279768000327707998421724931151134392058017819668459936636301942037086218136503290157224226202845423042265591148887582854213362423357310656886646922695897640560041354010760546189859459729935322861104380906897519862907292816663701650524551570532010564434155989249841582766148312267347030521974115100300223186149836622612318792683770899034085994896033745905336807597149960809106838026079093442519890142543054186383801218036323341605991337870086669071867265175849227821145496780175871045975931175587464859819745236434063471275526184049900295197019523473304276301871162473242421502043228967113254796092139692452362732344162160432239279163593528782919784761840513768566970253225350210807594555264937508700361291003364765966255360911703195567080590465340450031072657439222524696106640527087331928173872933875212064389386048994137548850316677901865869984585213280822137280545410139464307911180359323971801290826651006463029878663823160889271158272921435486739970928412310526432212262288835634138949514886725256139947854137431920266268420201046429081730713120112507680155483830081131927418828197917121815791092816747474475870638328787954300685652843497174912730605954385612021830485406693353893211457729730873925449740486233968442993690872558327653104557208585854310076969653472319416571767903697963264984126845352388369674894545326214789900036936405095439774548496168506167830455692609137327305076474754414330560664520939012140429153084634175288457258323642402052165916850300852796742712473155325480827849311473020480001709306528166908854744577774638398247611342424357481207681914597099692294779064022467370363049048483277998394861730131272753349308092405661045415468461991266843930621665553257651283908525691941384985146483912525749772520226346305578362518625313475513443278439846636776278525759954506718724422783602789784984271510155310063542565196741061834125130222308863528717179739601590947516296735964337736217497841513804897753954461368009832355552723713861754917253756123476430385439581911649086526665906942567959120519405058177115509763532267307532412093554784359066695258908866268006648210532874773072440559234452840793264850699806499763665550968120081903742424034384757997349310840362161351546241189189605360402709778198450719961304434077042213249742877761989956228958529806087003561649500506735537818798370256429812275719141761139016944969317960418166489351708972222953465045526938399312791024005709037487045572607976427976013174532508943456227832061802222366525483205555281471925610989603011353639689714702595316110836573570455105282492281055145934653507575661016928893573129972293943970690627221497160561373871984558350399835772473311826997254196250573920551683144847281239118188688619714241718995105800640564315474187709241116367486121618188034558453636169170718049543891218399535823131040378369969333646535761226131617046676814775054017732651714260939639670506371457170690303692761968764490410030514028053905995927102995746132696298737798943032263052832641833611490000862522416799934744358133315436804403161175082327554544349023229005731302534108399618347183871994167381916351633337606836203928546475019345744482550055895873978345408995140067921351110072539534633445865350327204099025229956701146767822229296557868438158421673479250012741600140659901013828756941623548933653189236807561510129559385493555612744925569673765399883101079209662533214673248390108765457398678992524340805671758876629159669776567927636096510322203805489593042016285024103569168352333160259367592194547252351962253198937675020026168523926060083678723420959672588799600659818266261360023342634536628660977264415904455154796177435186226196074400834119493038515376234266355762267780681986708992212573142695938500177031959532404038797311739350272228054417308429599163717647306693027683355883515543215796046211274036839370317309293715398281186817976938157814733392395568145937822210913729847392623950859546373165236688680537404486176996723143423849099747008288136099512391026323369745253893801799260086944159438506314212739698981676126545742529180959392951043062367189180063524085275247417186018710615293739804878799437893934951691956919009289125766894240879152544718642634461906036132218836989177636148878948499032868845374453506506283312713281644640963741290681932271768145305860305737674636054500535831094730694643962137473647468817525742107236017017070531118822407669270148636667003285677249472995666428489727960465299482877391725711229324705137446980619455437673047678831337838471159668596977186096312774651313488632444439303943626767127968562909932745325944573236995848389974336758949974767412940145606061632781616674017434708760329370679188587432490401785153220160584772152749482155723385140820158408409220854420942021107232504657397130344085872085920939069387669953860112694669713034705402012568510733036345848510047327524948339448871743365240957700377309437670088688091912778081524088962685902499657236264476815459282271396916987919570199766753329295374712824207362318776297376779177396720505207867024168361134244696673392142680774512955174706368183877284850777526492055615074598893398454305796687110768240565530875971139390048426545239876382247797437432379633530280473656433164966022212679869957185877139339926369941903177840759494692080348523103454267073610504964412326079415323307088348249496289389958230327716889356594250029563707692910885159431696405727691559032132198125621564892458373251143752432194334659919036792306511458690085490546340590742766794041687946491481849742393327018052462865318474059997405992327229729489154935511140466710177995182174057797845320020648428130177570418239047345225747486411998073501276408252219176180632997701247201662819907709071680617361371290883362427442604407094510368833004205926129947001011911105307705360282891815401168810373948979293574460275667672844787477071501783790292683938154188665089281470477736888525755141314011504436204383077250233403728055266834242088093036940625633903135983919891430718119248137740382377567407291963693194723121111486756390134449594972471628304125800051785058059883447651809028486389132040619595419082469163473594638302932288242412732237961415836013471051122272797522458610164335753870230102586046937563613985313156067690170824554739180540397344451336901306295102595313240215494508094578833121464264562019958532800251199217081971793716794182635560357219152467618082841507414890751841053023571068418908106636619109631837671840712918251658407267701978338816803580828474446756138171840472162298225804625731851415478469612517666270754788388968973014523031351768951728092388648644811276974414363094309843280335798858036206219608656847213360182801082675309959508024611065192459568478597222923682505346301502099851867027428126835435676272485888281260744506682684239738786454173237524879390702433020037427591493713413058702126920093628349306066308472580527982894266500759988160725073845470995937349472563330878148888597021135348867653464476663255874520289991028377168592855976469431664469817908871366126756575209210535121436260737983901453957230466938858044543362209494278265522866005634584745808299785046932733276225251703716724256528391970821454048368061088791646702275822559068440384977378389658865184970572470898107094640452876141887337298879662483060459924371099805257588255160770047602216068308393939144378175440081075866803761970166276909539911985971993426571802958129929820509561357617288984293788953493793147882923844237696886506155824368642586743074077946251519740829446004098644238823643195145310441780308306993353167428041671703839966181295669312027601179440324662801424373645326278110017799313371633908569944299966252339252535435910768722904519348314605178861014756362350938753195380994359045140943105963966333246134235169630101495063235734429097727737229238846647239454428502938853028746783799607807794919944432538694891124386963813659890855221789769082564218502600132655647750056256730513703453896396132333292582210987661318113493739466640940243573841973460398615564671797538359018949124497301378059974958063365748709674620375530474057155879299759068841634139921601730272100665146446807516032690384388471962186134096533968415158500336974263576060102134843271639748583143459656659054985045281275136997282384549561921424415676167908970004897423151973039113880620187746981549117236739934924054959747872902847125691927641490651268953279415516380127858316225967269173952207955140230762488739139414050168949519035294769162831258934708784476586602965745625318813975999473949045006949548039434009632479729575537869095556409203767217556390717420018713243778550541298015714387057100540470044274950270604914358794652461238878067818026932839738470461000540823178688038942725593195123794697903374516939145436017942549133327074334472536888480287841827371666878569608986038994833771417248999856267829662389298371192093947101546347019577625745981329226769493728362595374667010211916511667873170611249219567338914584378261513287046561477137705128821916778009134797525371568444539989532131225792725196530303933295829424789416122331933045114102326845256332654659004952831380210454258936918311532350298531548224294808374895582917562269630589225889965321791379666850391152024450015652643423645573749478498660543220124144881064943260903349572637992502825658243229202343869802873587950837944091794371170717184340186413786186169484670317927455985858776075829514592503303858123259681721741778879994007893406285060369066403194421077728091929626612856150961505249020868624111907328982062370508614348398516358911271321636710528171247561352948319939652771756259948536800999865174454884021608842940319640656393250188178241506445824653616488850540475509606380593882413838476510581785210656024553148484331922662302013575298427740399231147419574410250374684150387319464817996161773471468180107129118275688527067710693868319817082427482099949026576654124963351667144004144934745344646170610499557006759410763377723431093308537311918405691255236223982517665407767372587047940886806649992709878601512900927960355120390959872229021887820284092980273088221402431213350430729221480180834777731703964156081657091682997706887781958542436108066214916274800422377669688027772209259124660042763201069195545518702123254402279969336384869705408741784499742468455695282244464388055622424722360893356442182075198496291199566159137490806662364186623907639402691193259878795551397452256048274190149427030606793260674574015854642383666361044501990572605603242495638799721154135073033854904427729840824088407750763927257352616793387880994234358999529713207156182103450201585594416744800052825064396659196381482027438701531414566194877565823214675591124654478590810445934081964860713507693883601023347290579486447256953440940980281685554581245496866174432340796514018419584181911607125988345144327278363022493362217034225793899230432223446218713286418518157336937498048550072012185804119652915424644736606373553892267683920703012095456129079423798238508211853090171215590165723132743219225255965017502994068198992519744979391328479074030433946497052071394860283096099565539384742454053512087524357131177517456655708219485632913321279236876589916253910002118959035825308222653610331805833455333250241360512905444473059752048750622331413774493333828159138532559569351341077194500208663562473122399539120571870262353140242590014518718403090791376998945839661934045215986465711287978284290094300667323645115478752498522496685179443787578174964206995081946148012638792590004982594979510784026980137308038561522826685643643085712017813142588675640857004099825816079796031034580286702722000006929940392409769134115382105530403343571314711334048745730258869633231795665895684385160919000720332021037482595749617787184752875019609277661505645934821143155614158126592235586762822369087670493941075619416873915765266758179223179780018438301154028150021968156735588900082500412589949226961680388684846417200292001122387296628953145585674636042656718639441198513106841963006742603520779809663978111689112466886063645198393407114554265061602722662894109129618439057473980424334211809734603160512741528097622864542732379272690202128066650572935779899087355217509721507661606903847056684668622551370226214777117061589373050185030207978689289117112728168231740177434468382208704310111302346422334452823590186327507680178207117718167037709722760200807253783214277256938948938138400436633251450123958036478260807374375778918627609896527491510277571895420609908685191920754818673728571333069550634758658172882535391483797639340239837159345112942435241871655854797867213506194668413634188231011527830018796723840851468287150860295410876681797776379266189226728392266220524418700137478185741486343974654956806058675416271589360945310652097048143890971441253557471268763901520934259989552172552105594755219119419929332611691155812568314709612675886285993456024366795732278732636985410440608727407980698374421408394888664937267418480252282255122860848301592064039870334944948337564284671091984085487811054565596233351929572686519340466094217768741946953145227467737464807432528415981672288660728219534188457209023846340732534267157200772251953468429282965396903482154225722260071296717212118786315382117154625454357696810588834765768620789607062343714203763362552154156738004016294892487943007511275611981388749279023345771351628690393134111653708987575055124231975787808229309477903165703818052389090818007344120936659915265348204885058810127358275840108896608295005285458692071267980941003790956869553280247051784511881969797043123115731415667606163780608003727607975347446459389862313463572266242195790120711685955638690855859645327356750353704931845100603588518968412056995442650066249439124906004391292470319058884432275502771032131147458729811217623154182819577654335793044095287772019700634445642602529521148737847012478521744714297505840344363618954732467826108655453807959547841857552844303814134670563174212606373938940859056694672093062098417604203148905835248845729972179529376894857987228839286832177613801764566653140367691655628908620632221594918397898094765790346169661312267327889820606199558447834433931988789791889145032324003420409943371792578734387913950144443432460237570951723715008784193920796543800953387405523062068800497706597340553927094237328556312171692913322839961616142392600308146989019483668724037715099596821395257427800532407263068568190172123789274884237752007545736870975870698130379156483548631316586520039692782688950590737888293383152355091754084201306622253452011548786144525661141113994236394296318576594601572757967513268535952863807069753124307322138636299124564286885321948623543191339337939272831840251455112791666142446340188132114423601721060764867500709767986876273942586317069021421762676513642591453155222799573116929579407116069611541813510122311303463681546167422195955789143595638539518458830879619178380436269935729358738086203935412457705898622232452423113664235716345136799955082004298261814549050571043837242084607770890597078475926670901716263143551549479941066484553242597106117918952029705546460323109272891444668077378616988912522651457186724100557813375642045596991266345412942935503319598351352175390283093870121662983490328121601001081276301697238109546890980368607126018266086208385108022765236004970879341877832752583891189718170110132733073251451913450041319172531396052373624309348291944503974938326128350365343629357101200795068926922773766619007731441376515448187006459711729663393908247230311785838031606547152705630183595793769081471736950559042692014022469505136170905097789816651375588898212030734319470716494475627520406059045126457749325494169659437380512502071246406911038245517812474962659318875606091973267340334209496880905208539102162221330850826404487527481620047352526551267669600022221919406545247751912584909399673764093161200830937242709318042220004232407389471299052737119755307173266288059423373934603718790536988530492180897597019502534440963274984711699235593802177213974185199770242104998449527462324763207862365206304726101306683845920879081499640907035793454825428850741818565757015643060702705682227079166830842774997314975089867040921581718211996013661135787225793406276759570952349213186195110592146915989956120017745450377716923757324148333686266469323452428208756910604072732768514580066555250701684989550494066220357987233423539642585722383537282952316687595333213084053002596884788537416016457152354498015098392112199502679639362236524889813136445088468120919371915377144270911422870304262270503136772264710154454016821358388169237843275090060801741978514431130089826782499882188339004785198807954160711409139552533214062106602730749083538767375615579383655181708709359878016311718241785977866313000258048848555359196846506037352383352243742056084081771777852390557051807847035431311704248844331661898879985640185319366613442082850409917051805888860781520895392919410160132001367513926341626015784431086086599269269964773776035389337428044359249401437381395158050523311510655876690448851638349821782247839511652991772097713505891491720290192162774296420228012534573888474267922099961714368503291625796668204427081723661299849347732933251130351106345776973345944052126831742536144604089537942133765331598869494080447051812416027715755310401737425499276709307395835442481780724945396802881738756273924925137019813240997526795280051323697579861167121470289946779543298265290990605437764435995090447478601277954957070290958408758034850531871219501683505410303741776598960455310036742712061121571728164446718340414716159707540982784628459205761182419713108984738931889450575026732759407175451888775619863148591368413073889589719881432086902827418209713003619514517569405904308812472327837777383462420458343237539265209966224407033732761370331453548663057219649544619367034511852417359183202333364633108841155256507697964787237206823851049636589802994858368764817945111671703424927487466932939915318389635320573068242171742088492649225669344436342484221714438397851280311594068055582766026842097138195942008444559407659166316039230066299114867993719848343234309347558065097461367112997357664702668775259715651492774315461014175342584437866140081478535263664870885651381659781463828420517503501369088070356344129817399315439637033055780745479992093397634312230148600233021840956257415977281399948975226294003656592171731650495688063405779973142088582512618036558472876759686779629365192533750278590331111671544164338253990617010509952453956578205147927759380734632235956505727177217212868701982715523197416757455313604114187672802609351162939591833696779473250036932941948164642098086512736461232505189946106280185695498587012148410418675540980266236454190851988185471423670746534916050030425408978594524981060878927646454813984231037689943645884630660460434569095909077747712368250377148512299399236585575537626197091691567519621105074641680699292869345785939939867597994405039161568026967416805159890602233546691060350576211164985858724337228130979421437568986790406708410616237725614247319428296503331412021972431284758650813570968739438907470267601112751167821383706443818021538228272874049077331994166722668842873800652986736358883284694963157071070699856818421545134187901098335754330292911298219732616412947192899406512711530284437255966970645129127865557706638669923119507068702299771406610059425108308062252531930652932143129911152545411864529209994529755773755571602677867255110466287007884936932482270175324532869396992009620371056020008761735734636876757034688672070379588790574949940362793450936691398614915657511357118977217593830652557260362932681964514825986886562474046945125741248967929293380760102168238544914716721879858909758322586843513954510116794512841559906193565933761796376483115949744433638000269818743888991764913023256478026172966139041635977364073875755997190617234778895755093191670254180554428332024847970149935564231925235450794411968255161453812216105077027559166387059815348235802192927669597457391367297556674375692876726319593620656598723132326148421516014190921167495820690299311295321502634071277784109394077403982905075583928673397583244120747982064544600930410625492685130582274720430053484695846780359855612830563726552116267022090494671172613093095598967756306551580192342075784611472281910442417507522120859177329036123523655271946331479661968585849915113660188241921869644244459611924396339675161117260175891181240223968110970670290980199127697488400271107821053337657688039357132144186646265591493753385385286003935992057702518682016313772771850297639199886778356686989938463572558432947754084618808967831840679392972231324498651478658711416896722054100875293344828154248309684760591381823475354061663550318410179704027775544570461661850041159521765657657948363271326916105417582522314297553101339106753251248897100768666890312947051398879662790703373020905846443449921571229801706666318567896933246688364834708393509461072471078198170310187659543426656593353205208025782872770598586108755621506919981580167773151835512060947143251287789481460338848038594596401392186954083433794582282669272049917540006822235793969255754140340896595715762816976997314309860256131475988860380218900690234756220352770758220093448750639746125971712375865334060985947294126924792971622228517259382135769153102235627706187203872120528961152293903696284215717161766804108295716705916073230913923832380072981926257922554138716744104451345113580418099713376451350437573844300610247713429040196028879142145190252534495704624154423448433983408596483965365478996932939262815839548133614147192235083035338039126501717633249348841901734535786519692630010111234410935474403175253630421970697751483808669924480147456664110951947004139144691916384977203776163471622602289833238703718984123645594299998849299930980125657694797033104509055769834302490231546049652390823930848399622158958812567766081982677113705631008057938775300902420463193702118008703007678217854159735595021831560164466430005016449195507082279410160236246145753892764791261231939184451943747746196470142133161465562382622787769127191709077731886477388257294003527288499833281310224655796080974989116035299888147687176479137101373456507101708137811157882424341443710077717449192278390861708059929524867679777888832173479083103656259799213905575376772294838443007637785687538227778976252104931760856206363188773653366314001461524384969683343126123778596061551804927319390549945332342970672587339075808113865604702424558816054549090201470589658710046387093932575958241230195808827433776606017161133190316518500852850550065554432510683647928158977223242646238958983290128274714981005988900763582977842134504556469133485225028890290831489724401776280669955872569586876145705069815934017165977273870807947416383410566479983877357412388605950775974266737939505089532302465737513081557790353062123648769494192900182844731903761637299998387327952513166593882259026535644263614197466574173431414432780718564112391842862331800162620086887919984070842435553441069631329197483723523210549350686522996086835354441260114344276641782413284316614034989373336303882230646524460286034430253325457457529124592021284906646993115932028558658932930928864878507126066426097558257162538576297025055117538968771662429507073126022293565480657298317295274235086317227607766825982258047793680338821570092195375687051225712070022600716847946927721884378776321360328747563051736211214444494658516337408321991798767590443167435969531031395305974782523916331776619138836633138507311914915354480500992716992446068045002089080866251733499565172280025827033649927533207205402862060838006825352340062412378890149265441707098733795817806456638309838723381150749733820368450638375724645653252505998349563302684496193246840760630040976606034834562645858589195083269884305837173385360583310973098310323452017883953629077508158172498618213792874682959230253530115884329467451168239324576078382637321186275452248093690360671712629460401428443926007897237298014861078376307856139329072582453301327626709762222491834016374034221179027069138104413691826614044503324424893104550329882537728722725175841804123327563150591587250619520432459442316403884992012530338254336955246322471958931163635048279728703434832056672218585835178298798728507429669472604397009942921223235067975409606394471099826224101637121232734102607293167497406242425069061580025183351635945646245729330186799248640575987900751954286867115378796811884622037163588280257914830608676743038203580502577894859075760208088390736554544357438301508893664002596747260062211289697667491846493733133548243728141155495535294937501869647111087021079176553647238631259048752141750212290483511809967646330815402777114919206573296916823602871880730258447923708981940135311176100987130548587006884108617936579035324068056292335110247741455456278858411355198644506719097410693457390452156892155071389286162288798856524213235804973516417861009922335189427668866344256908697616508999568754256782348253610823654657019018025551224500331944301081129766181575709807434112151334679361535670093173382307229195654726849658498662748403816767936068335208397899054284676373075203807111214879316894051206968321202042411020733385117780993219396845998804980143626899766691827243723065578639177572113056825824088145368585410785298350557625993440769144580882393022400636420083659498283323573888037293409882339212756447450699538105539740295546014845100757864333179538119223375807205666538817902740750296919009227293608634298746462561215423858189802403779082726070160020902008182281788162105583213121296527341642659671513339226225892130249060912597523899755694302771799063109255197854193071009081490334088157826210478538313569690509763237064050370828070330761042866668843431993700428862196808226044695829404701879937922341371823213897365537286043390874603777375178901854409842493968239921147497884034640452858580453492213043981623911004773623345790911077994961470812202947084990588864246429517599449934702914685726916992561774403851532105070770068998974631047972870921194762317954708490820670529369434144522114577193607976941178985163716916382625521314462788716115507780705460194792082723196799902541306622335876354000330777093788074668026731674748673469150712517211273747191148613636171356290458025584801908132772898482139820517744876358221128538191539164392407650510884673813226056384728715053769000285722170624309410003699944464261703625387757665934629016154833367944015837609897825996917056775618774889206720675859814711289860775408087902837262919458471561886205131506137582400445425084003460564652197673270375898609168019991907884506744612330840521382813742437172996810249632139017152047573165108949054306254649302866540701535467608390702101452711259637791997392775647262690902505012013363533712851177052745588009582728705321368303514051057619880357219268203472564831422461787098298882849956997602229611514260579901352706023104499973735873737009648728746172603493335652440491785358322334318314526990267299454273232469240524804478016566411701702806492780850150931339268663121377007168138478773897683702101373394713432262414616438991074231163649726771127374589528114061993443185734813538475852106847264508769167959958943222526962863906824817923329514361798525606057284107293929487695953131923685282850158631266117643733315612810810707140193472205280939274269735307278385900562233700530396953763692701366074820683747177034232108082298776115235061906547009667367323599020560342521295309008820849098900238414181455333604907600926400240045833465428776361815868675680394126122533795919404381546308466405849216690476802966433913304232778366304201897729889426723325590982436173478246902813026139066452884053452984698503831286952381337820267369800185083683188413086367488340439875248782462706983737414609568011399989604086783893356924291218636749418943645337012062780802685732018898341737291254933632732352257763737853552293382050742566783408950151820191626898459491684074175528703757567044884497194073490886524508764978774112573575097492294525115072010954960536189812243255561303303707085761244671875459570373338814025981959882860530456889799509805602523941136463407358251698666593566486665880128342486602667863641891210570450889815740502811286473739112798477450058033182715949423855498639747702577692778030247129723168577232317624926085586682973357944440215225387554709640362712290598041783758734774700213913749692587381176291409175059462953778503901053913491158316951470767254655991688899965771690506219757297977355143790257132423118390600758430113553546967505752160143922619374531162402349193278947556375162254238470933566653862267501657348729781739878815702353382165166455639924738325360144928748683158427243594643408786813384265092918707614541817016944135965131220579736047680337760334119014860859598251385272796919896756358967797277856698554418482849318757603918218940573802348644172867955982981974893946301788725613054655470148890648315292986671236578339655150217279688250742867178117024055679767614079052647145237953560478469329451400875448365937655872443291666026429326829462953496122349864306925443383328402365019869299355774781281478271328566947687224257926910843493559788040194302676446065026409809893467219266725362365638839528419497207609467687199362536615338140305480251783628612987983957943161323891268162341352733554565090434925418183999200565480003885699518867243508621657603158988354551696485246960041245434834663416422864811863293381722198858684367463486519200076560725787737180226861560396952823109406102324758777311625650489249198133050327933193102782315949533902560704999134585903891079605712366446493761447758620628655969059560889254513383190446105219580512624208049449378246496921594508383985580249743957904430250677449789435931813343299403263374074113575458309354294535299035515169111561332874117256958409936666797316751662504795844651267501843775535196464397090711957080648748515021724113257384491990108543076636713506578190877534963279525249898777269790823171889280221549038956977753292055029480724144053963950817827156226455990211515324783340733974786620672195086510269027516212534612523885522102738720368504000430637496157059597235501552366150925912964918095907096806336682846009127195225819346414145436962637761594473224928769590193824403226013805489338717366772326955308944444599646158393186228113281108067918516642920997938743236187642364136964967603263899258684259409481190638896760160876772892572722287181537386285460615830435532714422908198514631105869618317909839844281732339326638659288695891211819560235645785502117790682975276268815511851098348915174885229533814091941563018078534412403726127763348149664584873085502406083428863066163076067353224269696746741987350885087937522213458355789510659153845473183600266753242458293024953317141766125821318404561444458365514642813850696824256972022603576430839206448264828133160023793958093678118085118829339524606394322258047591168243448238148400896319392645741212331532113382968112661616554849524536342428101603875715379360074931480232748725089964108304165096094745814268825917505901755064044090426652966559543469313809195060006174421379902091807047165495161173484797683812741270533154286924959581767197282300039845778758538585832685483760388341884795713530381667096356970205041610228473743275066359198270421584220208959960630948314400741612565199665374994313565171562025500208296105954134566371229067791843263558109289791049680229235818629094823289351029579213078314489312063539688321686469431223836418588880747066152783116104163938897339219225474422338914141226745061278537251582117782400683412866073068819147752374525267028407537871221928286544380112220747579013191521833712903689034257228729124027393443490451559466430873069348921254005641616067175833773268102983381040338511379615470490248788983427735595468508007952887777747562001340941076029690345539087922540144535035869206693963170974370239534288750795651081748836280941134928712445382632847219113869644741697229022954999605673750841387410688898536585793583131851640186590505022064353176627014348503909404614805289638044432478444014768766709779529509630817491767590502704521302345402735034867523857449602748521156939235761410996986119917901600891644744887976123561998714098401966786639402243845401502242193633910836260494184208064671281927809332975625786230985083346402488527951724230574438107764899173772852844829371099411816909767999491695169571670215405360689507254667526440380312762284809177484298116632615186824351989987713686076881320812975136459222859538200028705003365075996579176768595224233454806944381452655841921602914901940468563519273051970398940872546267968409398867215610914285637170896630242819464251302685756018598500893190138007396691912211122276284476688498519719799465893561160207209893715522437488566993168585604640105246867087900403182318050518984146494709585550420108782645395725902938532015104056070326287897494521947499462852649904476578011703783575095892284022877683846559689722059792431932803852555462842935893387684036802628167989887716845057187427568017096629692832725662416299510929080699013133337466432663194310000461003513801139326274962275541374783395643510000485761988343878279714278516708285737736025558502032935619244150000982957107861144141895712888758050916470791184044403945458749426965092105684520953200352579338716260028815690675373200571585978700003928565617236816001242092562293310302666777377326919922670557265386824755358283055657912189648768318553847746772384805235216515121933561606111096747878547980260115635473896246665036107362805116261235857953723520484080935807193715520874052143925410142973369296009586897947572080180100884216582643889762937007929548180958751014271822558505993618024685608867951951328087956396414140612394201767685978690906354920047131753662819835702736913538728635533109676546596298056436259844904509404560410789329629730200760997504544953531267522918735824832196083790035759686378111115041132913795270874733881217113632467985245371812004842936950304026028730289371014766738117463329345074781807040081234261632517769479910065383019213083539564966063814057328589075398134328899007381954136885670726235047380154345546909008488188129012320846208793264180787952060491956407890721712156813616074221091097851962872912455322203417661971784904135774644865212070945572181783438676977853108431705941207766598776527879929963381602735244795977100479699881206623704744595091372043552403566487849204882145472711107659106092879263378688852077728201485946943953650070998046050579886757333264820350911357940626716821280072269275341275972927806880555326319010636777208755110969608316035055106262121871457912640902984208128131596098674495388337143746118245799384844886338238501749676706214300331883464116837586600965093018646172833795543640516367587975375468964644934618461124737591851516815776808478503480885085570558665349555223639804375088203549531462069948362498016723267559519783522862687515449958076611996303473641879019439895634016193085240269856307861599945951679176740748439555323975496161570202133879489117805383981227249248519725323996800139643856489147089686145452785858676204040619450240682188268414406533228458950215178771408044103514701883111529751506578435400123546263112236463251596241116228142190735531577216720839126467454571776302544196827869516782930217997725469985954863292750180373126093051242772936083784889344804635842851436021645127590870759049531029218688771415195530445807492657305260710994769794090735035004116394740366439158483500014939968760194392316537357805469506462172980796845643546989671740982238918170297116865102965978134930382627177094664805474078555912758038712606313666914127004364165019856861785707518500654483220994713681949503206193170199358137304179139095215163089958047561618717857705817441483072768831883458769483586366592882850714404952576741850492704897875205297935455211073652446449689305356779885980478480898079470471794431868594579433319919432435640886522181718086626425641246370477020205790056393573867818058313722341873442581193522347877641437358730739560730288247237243130686484474684633197613775062167284569336225468940673947728073999444594897665213829867975788044480000722900974960387550517233861678312955953504884238989918088088408229234389859748912093323155174580399191514324208428926987034154873551693763900894635063908656293407362936941790357458163742681456592772582945219716764343323085297181104965820149948425612038951444790968901870971131329240874751281688372175411023481299512105523745972838344206581969422720005027820892145172006062674229266515798403308431807086357651600299025161949947315465010370022349373211578780968607927363834496065117361650017581474834750144458260517999655334744744358479136330991725045311903308391931362453344488836586646383414286862716330531750269885172614826147534422676803385938316164172163715768517648517776616076375093895449262644203824365587120771715276740771670721463235142224082005575835754348528083130595269422899176323121391024716081286464045703134473392352768312830736296941853526066905562392317818027121025599101208855354107993171621589048331526072006720029479603882561024205061135746841080056071833850464465150098642988312638376821087274307051923245996510905306186938372990966186345747571423736916223220481780335436463859244795754927974217079648653428379417164719927342816265167180806918688563791177232542569962649666992905339425033474056049408348778223862620318731168053043743812794454408257760987193154478749053763566384526308326260318969510257675325122720415688070758094107584424795081528805170133235146525916984253641098823317929634438705290528251571399285329460181069908332020690213602491806157422384178464294077780937149010541103810197126264634669085943535123047418257608002006894918234498715555905181370907527773529782400312878434023929162216088628887237490754401147505324943753781103592513817021942110344997172675116314667041296805821115454329434673569837276477027334056819832978149293846852675439498760785233231263169672085733649579668442323260624524411049535015900446776816736428714463013372881110651127296117585345019290855430940602744513701890975550840695648066285893757379412834942483675764021019054845837670654504312675820139234185858579079620591017815394645238425860777483493146331377628267085035344629124760443948417274747759013011912028351534104728054546316777507475996417824732062547074529379475295988448437929192905815545144217913625624595380250904878266282419992010527031966675470989861916769344415768622597643442196997157232540176392186463961271690985370955448111867714589730281674917197113469389065646202098606720473931733052557027595389996931251044672833147298834255952578517441823884178770095852078773613933508082590470568388013128672335244292526614934958851368089283194731909495583493579007181084977382906678013050367933728014351137073858013921700946720765630071867558982882730693614249975723751444999009572589912063413986102963318317588252203235078701530722754203542491417122914682165750599218575600281424354084763098818776442363670994306199661628692518034280954990300946562935950242648093925749524159975972562705737678953800802847745816331095383020280650002625261366807077473487775363509262009551456722498174565866639826208582661836122464210993941428668797189461325983800818383414592632781951102035095286250450419890359676229019178442539085316212231722250609310622804073874528798003118890406238409372312659299724839996663589805836399579849718147935285254473939677820109100467026874733734028977953367574591405224506330363693903181759629205143368825455445693814522054209329163080536192633193205852297519535456222150963818222354338388841411823421442980047062191199927678079884975411476111935793725372382995756251538060344386598566609853663520001591383462778298953458800495575127596509421611064995186080798023800931365633544621257357891163028696639425328095905906090456170498638922936297191947501906055667029504501840205016367716825609960985454306075933629702225837412451783089187103745524710090212943530596502333707354584987913324738600601474320864505020467014810842817868751485426084149493521090799158212383403811566251537861107218398383462375582221712687245592580177921670576095993522693996618996282275335922635558481711595561026914548331960201897106389549006489668464669720860116527643521506346713721191884594853070968196455589587585529776205947018390913694947876884327367987016706960234555745562607966603732983581892147308264593851800120720884611090898734107116025061528293124699725907164884837676724611142499956058215991753438930151698377951181458264807591489598195827391057347534809153175273594024570238622663166869242247721869694498764505503487630610685620141591347952382257889595915227803580931141707124851612956478758760338116896057602397569284424722701823086741844714987797562221312349011024520140214957638743326036588594178124085423923724693253743099930944099451457029726735596680627211981585589992732733582328745190510797706325446796819693579077076423049321768144085149669642639276943831669845156192618212451517508972067448230238539407212938605388897594161695887082179387886386729672648568816657655130119082372510216912489140880944163001072585215421907315930832989776831885147638280533807000958680169944209784941479217127339604407988870831691810058079394314704688864290818859204706220892921494023861912880556661323611047994228398736673927214452153852663982893677166264815030916336415575720835405856314402444528966991699911838934626265527953017846684445929241615578386382767167207666736409725414865065554082660812843038804191854712261756418508713800296555759052085126692789665532010602177212806519556529961504836453230940117192600229984310017011277166875669639894322806036674621427213501932052268862034743647729575120962252759553036425386536357206621743776172857911303001717983860344203298447792384863741689701621641368930059230315354313385306011025241805267702151696834567532032290208623716608124666685924304900790642727742474530403973662326544004560481155180132744935417588331413430433900697252188874152045688889465158672850399498611185720343425279261152529516438902840900525283986909523736751096914246432475019449855741476239204619422238624517257258044492786707470863585621669930293442248951135550903605423535661932741447100837680024261060277997215941674417274267606975120821239266524775162295621195958562463160019118292892884334560145189889719623831341501553567312323451516147208985790321154909828758115265278776677353383752019173368174951807601068465021094857373851814659401704424028706294245154399075977289487805621118492774738257627541867333678769682606948416887591679196969494688913302026878971551130390996280317122489900034038129533827670541232699604648094594425697810593361505449805648272919413971069995432724481432265149006500791032672472526035758771617654087930556803441643693251508124858921048099367846242307356812927886713054029939300042968368510445235051811366040616559512488464376973442587290348195513115402407368331774735098253145488910293922993149433861529691521264251540521215324267054957672458871646974487687333412739722224571853521313103398922451011293077906162923179958112448975800094231073904484887995762075958395775808713060553592263149348478093638884549421356972214470498177374366551249449238503337650185012092472115245618034280276652580824852840815966567632215104735459748251809751740878264913012788297448302280008024259896236188125070167899931684405113677417154854147167565710747740556164425104481766980583853175923453388618301870814533783186929997148300837870519496832213130656960570851223737570214971341011729688905569604067146201172076393463549199988100883657496007168999378190558391489980133637237965779876958688506952302094614400613066481582651949737526898212496957908188108316032806774686607647968403100312498567515243988323889583303397560996817836429203893964783580947779847794612110589777674237310767861539077875782035465662286495024138472910211236938185230116341356993637045277662533686170653556619689516785875436345778719029077402526327712534783321101331466181571073548828709428768186132982366354766048246127410030349174858413939570024830609320589716270277723082563820543955996355248886558616845617753621651328359423624197643277208329375684676004278727410116332140133961689920948176954003713366789786491735252946291174696994490805290263640214714356378809466059409016027682394027275523481381464057801307461262111231209035695613614343556365381781691354259841851227292176619129658064364116009760165397408221099910601533935382244818375134758259642540144947528116876270220894293195807927189015383095054193906579215980342225875142889646032189341461688042152240672293971760720065482152090527259434886591675609878316506589819145740694370015161070689318025661668319927521157054866448885958880106208441916863670979711909741044988333374281148468656011601947688264955995757195111365849152249471165211373854478477504390667849538432941442348279160285334140543009385132884223820865910146068405967068668975395588689034355572453623453576991299779705630720265353452040722565366380812255391058855975993083492976063609038252990004851392211336474719810730636443944184609731261687548828978646153124456185481623226273125293663412088333113302246028242507639773693577043196249015901380131794456257999270140006286221044996923074089961469507617810858926383707154136282619432756956390827958524711883802886891840055590809084595557840933968363974793255141711432953574347005280731002381277742048707585897866174420898756425226973040171753065654843252027835661269296719027167789441380566665459854549526305840088468746298241773182131892763061408172007434436572262683671939110798448450296329823240335543609243656454766278861449113740530682523445788221842885621116351175637384393930503660226706325574140916663504691036981662484408328023031892773815124285527430554540580028663249381950230005710651723876978665864274163609666685630689159519014057352882502858401435018683401202259192884036336889995750211356924905164967950606703802245291604413564588172038597586243810681238502740761495332487929152426852158235529771425166223069293021493206442791774372198721788255521800019113122814057586191962949211243197327001787471256173441573704131893317767549418980835734845980852283573540591655280520463946655164634586378950821449827695587263181576822877163952219729416208145680240166532013060136382344506022939964103527608516642605326539309178271634178667863615450986113610652270263427628393121843607993531553703663370901362904254142291128023836686959299553149665937450570979533041148585906377742675125468152708702686674921229790162534516549002337857608190609449849938404072202247786472194247459636344182275087432503812870934855760324136696978003660168970709961506855598119895447015962302390954216412651916566487457174172478631797197881171135998019418205032128717127219091882534716411908259889410894806321042424135265409397029721416153625362432330019502355326040694626124969631710878476899996438132722992692990783560183390269645184190394586168169069799964795950356062971775629829341623512715895802415416479520181254711076227893914805691185436058575757505836311433152599742876948555063805930602995157781958437016533598301531359911144152063285004804599609083727759713741244563157346746163641347663997520511278392702238491699469650620745899306872418343758581868507969462972243278850828124453237495854068629994313658951330535149783801705467247840458837422590003634307326443012797030098551260973510117929809248547705379646705588702277750026257924390280973491711382348946353560759560639014443873226729241296474502915299197401207639081947848613613662547599007852054673010166063534072918099039487496760225176660566263291950086843966276173826923595301550683475187659793230933212396208780297692654340850135820392725918425931393746345274947489082015988456631979519901890850068816737106644422304109804247754626737911577883918020310944772494460532773491922937730844761398443718748953686983113192628580680404474251030582278041853637785507447156667558299651700018017080384049440231427383595977155814936368888703925269291787168505632539526690429368127779648771946112742523730859302386797252685130571137775619440800712311811068441684266694759847196600018753924567541548827772820466754063265575538824769657019899771963698078995537637619601334253334564707886340996601776046524761399165717374416013187477578044104208470866090611930034006516314962947240826677569971880426046429248763527897220154010216902322279738691059167864199659408946980464189578681312472555096410876222079762116627516598436350967461587490975441828122479557427593953639930765796814843254129037190144244310945192442888864937342602986689859611881822379417275365150768889845393157639025435733651714076136652245288761781254466087586262871465291772376535891062903968244295263657698428180651400084543119021240668657940883513913882955244796737452992531228452118826012442137569636287147986484231022278698119165424263615900487508093921780551492441359273450481583259797407834482747697184462760836496804101229347709321400363495275672329688894815276632340629951329014961502310405775714721585209643969690703557859534176090360285073733309175098753110896914305520694291334933695265423737886387290563852189113193298145457368921309999058684559468667281592587175840024969169898668143021693775632089616705257043799336213773044877833807064574215754599585207015896805480946981937886348470335506589935293628060858464523580168012129095608408628315889873803669381049913769999143014365221487879771478153954414867879936635029220641790093101298311466152321005430007785819234126150468271596525364033239209930016590824266846189933848417114598880178746449364365064213313160638233458152932457518446102839528770946094910501126853597204434021275477611936001249949976308582716072113060706774570333425217406715654917953973812746348237275811473324222882780134426755242712478875899049454019305533394564500512937381750581116563451931273184879969605499166915088371811634385934100484273169461485884834783465676378142545406942712940307191846652571820053056978399511231568515741579549463537659634046568532335370334413215903224285856698386987360470388092593387754076999348973901703229996280314304507223583699948284660183200486605462805434667822315473191229248966573738533590036858888328010951073652933798848643113618032054750152316404090764921660186526469423717710948218974882488830800843016736144002448123880470044123848789664457471526817019083545637559472369707742441074415837680807818642982362507043243835052573954553697377214711142871371696766031079613978297384627649831076201954937943013715426918075552192008158751374005310442849874379757427496763430664127412201368879787473347361192092629689042861627008837626091829689625919082823064822434449433862093829872097768073927015868994631097131935339839875496907237971891040185133379090053346913406538229309308307941297315893193310377552993679536503962832773192092576516395108764653738947749155993664701552537535499718003819870385889083217165933275892548397129496134316278339419303783673081454012689084409605795680439126849572031264822366820365672967574463587082212246945101408312651898811668089242814888662226936392910867118764399000067631852672442611883635085759699814374904168305989938276987561825900116528296552424129237029136218191480617003699289143283731683093170175010537429115371774489110423340630550635552671277126862404605415421820610884905926040830711804183506339677959370386281130881408301958594804006947728076961765842410041463594575378718994249425461121439990269048154103963972999876206132307567174121734091778934524873508579383681727074817545546119568677747023141990907072563625332171765415811831234421702749492263899094153789755077374315942567941297024445021638044967418264939140651927172574414026817527318770270972077370446809530036841532963058331571440102397440820798005301827515869537289885894292752091416389910813124827398747598392444380993481777983411111877569317420105996685226460368038661857281963692171477345344539224291837673714367281632220177706515493907444543447309835155675840416611528998963114453511969833325096277802784775232428317774971380503379361723879088817304402444100163269993874004677954662604512536953294003092331521653441337748071383994950764251313106380401116011096091820646990326433226460545239610225833994047866997337716825323621282341554597971512478104025929839462363996143140633605529796707869951884022368113506531616808830137779034582972238433535056797181089956556930323587867438776794803801224868055957804150682235485354101642861240966986935993649770357406611368207049996343824948423360414624572396698599129797185567163111779950599546531932357200244446907264691908293604575268866315912459440397531638111877037706865365835847926294385142014630719723798226982943905342973896499272750065502340103404134044834643030772073314590878326559720904206862588588491561040958932990457665025200372017916917941990889903008471418538061540052216178721434037580453380758470719063713904051430902664198597621839100536285475545471236671708363350850054497679983963525546034580023832889517605223903355301400706471702238977892336375509940505652480592412916980739337174178633095714484105380864575982070964511944238554823174302069461301752685072413901883055285559402671905855109073078894499219595484345968677312927990204382779598494131375870768529254631978213615035810222630017046079786042442874434583580794857114942924439373566459037805872840892282584370813724345365931969094124346580923607559145091657976419937350218683725495186321293371162066965779742286185528748494698698642807973877510696724943598664207993806676326004654522895219745008568678980458373395198653773692561633403568376731129903742043628724094451889495030050574210661650764144014107236646542626219275898160016792113047185349152096717810193373088232590434397744671293051736653862027540259582022524945849046395141753094401144755678472547152727395699147881587103451983518071555119805536029774188117286173276865432868224631633842476080451536079736820948970957054482146882449032276353208467914028810614846908418985745985203075634936327675605303292909156339311711966440414187240841136933375092079281535719102019093140215656234433225672721528768252568109738085738785428011529375364376960889052616601734893520848803030031600187121779061960029800567729305819085503121947032179477787091435735621856995728494470242685637570553555197596792780300399248534217807397239271927727313265606164729980748021224496450599090223936534985752077045500239431044353299177294337644020509825125832688603433338183344034168001612272845369725134361840592598075461551537342491123075398531629399972328533803999946652614687740512552790397940871030938078283273909073251345233368506712072689862438793124424463122653604752028184863835739433418662960367539129860269610250548888238779173860188367874172674162390874030237221107483240096193744093412771871947061115035454471835209838304755562967039356623125267369101724333210896397098308222789122970462130918446655300226789048022586825753689876700810934402389213847820973675941249897490464190363313469256101229772186317382198463266872516634393217955128256186045085754320160772705042951859295488553346314182992231840932757385283877173887592768253986065028458095628233742896219993600932913012402559879098028274567022643812389061430108230912422777896196307581927188813019127929436794365102017766509909252292247021041409681998162754363979897914513367198602904335987500923334314407447204162283297438860963821130973194706429297289993715831550218510278282818214820214980800442137025736834596267109592089582447178286093340252525734058164715906690606490356512269726550199008905394411303606078349868529862828202479932477492897273362794567918759763539781549112336647025957082328778185862389683789284965681836992398493586487663754946648768737588525194116485905297120662693483006053345399735483069980883170877563166912167233495049824111588527911429915919892485577906279003118894911230768614666399212537908494045048255181269807805359014548425720860233178707450733478543509878698262089737170863618263446235326993937658444480169327918285589804734120219961009722509823249717632916194350053977209569308478238405125132125869207811297992178207887272218986895217323070316303842609004730384366200398962958916575146262360516266801365094895389551467433036748877206993736502605425697333305468216767330450538929814093010724444115949003546471211571880348331715092475498711924061252167007856223759703061384864079909173840155236431706096852253798164343182649875412828875308404236934770836453070390732780465865785611921726529774430138543012643488555277572172323634043112575792049430582406490417377266506148427532354708034452775896227611235645418286328046474308322291622260463081134860166583651195444850301595833859082625041604484449185729600130468834426323096902107413880688221103549022125409795121926457738138569671443036998417469052154590261221042703527042088245383622338176546288156166062984625695450402567350558004909804272670420818974196404111481527051440999567994017213028664917930967075630628123058652169026061232078987335716168651863398579119197149302788321888606632049554237853888913903175035450276974258471683328666212727695914618271748741797625174846758301987102359569969409028415594439164396293767894420356544445953360177894148740451078834956841111155470910459520375056109257514103495124124413855626518113032069115898388204696476848155145735834152199682406003043158098685890395462464954279581776814884420016657807538143112374860306134903398601046371219597334196110400369949409604891860972055666674147583963428799990809883360109266365195779843179142665443913849846988878702374463538810139745326236695369971640504214589297997120211836501673568160403645374248532049727467297983161323855852623227515181478930382334381089127130083710930945779823998275606711054513829900145582028656407567414654823212556059994374792790304705696998349203518187086758401899310654770500950060252354219057885303075697586133170362553170589172621178142104951466464818658401849358179003192015718000374295475903950551948869707940897959961912269074165376280688759535092648828467443515695891863558862041045636242621488697209266753691201501522194781704968362235989581839438987754418827923403321491624879858636732956822309027390118885714153077801883940290542291209909539085434128220660322964354999056846071188114985548458394434355658245496311653832009815716469335428746107288556440796811133316489213401496142287478724876753202789364493321439191547457406575975820551140859846820307932568477865466392442236723932411489138962586922497523167929667453999279956325897949957904851589739411167964952329823635570619812277829323629690656490717233372587219023297848480285192245055561760824201994108816113783372845143294451386129239264642125067951768518120421402583815371389635542733592685769705692240340872971947956611850721557498232241097063549280917274208737195069858477457614820756525161617868129865470256099869799985146132412284427909859257264668545196897173167014746676749344454144878421991428336324877541215819290621494773366029605895566131829226073497841829011656757762425581779084913889805586013064326581914515314780347702526513531044863324680086343288704712075419565067077095137678827424505616501771583159103837639189836622530553816177349046358257895900912127118123074067283109357751280829933517192437024881632029397744369206220313670634574072449920231467335185975391661592720426475617177749289760261109168760868967811843898106214894166099336201236617965213526572883099655547751476937437869478105844670852249959611191309062487810095259578354952007626269642414502837545467485065190112711134523095264285960075597109325461047808913803258602521408527700603459184288085549533009522311498887358750979656963739499151792515675005980394078992128492933643474361890844832596626712082958310331312043543337231541897130888417929875895346300225796376223187897790666505175249441561548539277828229340677879540718100763587311210794576640105978986657787058678460035315410064085447379943830999956658119693252102521060638345960160227498891227162461689090997866413457249240415766535641191358054588196453063156776521443313506892743603692111525820610711158976781119930923785612056257719778871675689611457047737067119473411144960402729998108581613832548887853240833973095458286031290783346911581701593790318728433261361825792297274986240826006440079326958949764300819546025236314854199248616881541515386068236180466481552289014437846011391841251597332850567957254858384004106868145003150158296748589800300408270455265090876450282212589055085257694986778377298681646517771332405844189524264394846970825095620930120276789109947344756298642177000099878201785690457952476666022413865423727490469390636146796549909580962921320559680012010969555513548178748400557673651290379163065062893269183376475097859000050416995157253564639431212991607298182228168796396429520569287411063356375518549879780402944474186881111664556464601828746151025436493332360127623736628208509360273466178795635912300881124559210913772611250790334533083896689335102604204335581791873308830593573761899283775664895828400313331163187616744199738727767884995389255704705579985628118083102359801074215885974719290776933540583328117199079574452658594278330235810235781429137983645248417977620897556473036700602434081061122160724361677161658745541557212668368187088376248298288683037921100572403504153567093013429479416040371620642808904381954140595106374309575423823029123340020156734081304858349220623722569240497860319223675941610198373084488758118919009364943956834314844616884228409900732717679320023894227765899615781244866505016396559503015011147893855205749918348409030803731765267916629611263175634206324440270238945013472334799343056644181865012696405541364217580767569084990827608644373701267827353658628948758451120197051629145207247154459234509709747923991472944759469423948927004291342767825470514120270991747552964010216966050254556096860673948442936239319303641215036583322766163273597753521380043023936555922071884438290625370048419174225408112012579739963246788150948253146065084506090776681546350445559703143074860117587702905916401530564630947784981883912416761326158346341681775981647043864431367809989001218140713789327648968660086283804931788009039268544804885047501732573673657089253527594063107111182441476511657619213538809815368090021693996033676499552573451271004939908874755406477317154287356084615129194642137884797514144090490441120108626067974279844596176514003102458466618179365427713813689921593898299723977772533674117503524795827504902418236231878923707764195934881988035583246172221560848525875816490919964548116611882916452664705028493504451339211352555783022761296143983520895559015041110930880039187925299646732113546901958024296786147497570887173329951857937020822733941828817033496329703470519491118934790531023715109271167775931693893277256710238223502614535975026885621005604423871718198545110742840022989839597541600851233100332815492203003012744748938130696426039056288155873607618389384241360346334778008997797067233024005014122517839147439823815982396245613649253765321298455035886752490630661444860320187035148098682404634287994287674052643561041846536893040395015983448066962704418340781995394435941211260654344850644038570699767623685044598494124409084217529450678920278438950965139678730184471760183632121466940751110112119193071575586205870447635761971664323064879008280191009482485243101866151606928014196967473831263384962147569888114787561114668104971537427191670257893954850715892980511858492920347387925805626504020904692667106246065555656470809482094029993931323441576692902291584008399966863991382962987522938459515829841063021054357238905942997848440688465799128502973942971746255415862263604350612774541203443134279987092110020612923492551810612312188538263280344326092892355118580751856814736568084317550860364510698610305978494516656890044320763982494766278232501603012596411329335074438899065739478093606653959467604134787978469928537218403927314229968377848545066479644642403475328675531352386244762753505171114692865890980288799119644338753531993336979106894234845859496105310864707501471929283938661594271807359605539483666624858901146670384750031690136504882072666213301508435577320184580031684899827465763227956995967032614954760674466524405077601499632925220132589691287972320992691673379866223566505413297361844463148268756994443988985730717612053146174913623347143941062964570637352728919153233382531931246555127335297409706343602685735241915461775468739538914751335673855488341813405561929999891386466391319248084000366258826315897870001416888009491304686936845006559613997981193155641212592175934404793118678900768739419171549858549534368891885316700645117340010280907288398918259686701238180198714100804932367275249806887051016553623845359368809163213144411123250180463916050521014664420713126583837443737941778646158296914238007893025017561893582071036641678615604687469265472721089114725494535614951744182236131311705185046974742925273625038317543378188632898355090893517016299114113608454965088749066038597973546906278767230422328337387756237522087295816122278168253284873600355753923977626283181232152551546299706613189511115807295501185859948844714926289913883372891865530172999241953307980212057161396568954264983066414586726324690894525456802365987113200992877740851742472973802097748861702250099854604666870907161835897296554556444671625737372013143098347403655693430868860345520572868390729952688635081861953150211653818699484578275961783572072788563121532404325895370004563481954743360535799903238652673168251578806599209974963666415409154638397374874273912919068941059387920584410405576013483462085733569915705303847516648983564393119341855762260180938881512151213227683439408440776695492377495757951826775847713510366725717974175546641875524207737408428256434601687712023121887938040078617080941247995940929818589814186462269771908995254583642981679214380947306156217612010317041311470718288757727769070276212284861015766936504341337367031802619888898021646449272224524261711484487651509311616110643791748976203585986172758171953143744567633279645768138524474560328883004443884071634650784452589012173323390689477314106013112428543102936714855467996457345943522566647427984287205243155299599872266588747885427813059051493800916822463653279512748931302545032916957951990025009267843386656942923240600978927052609741098441403051403497035102004818818482758966475545336589713110095923381054414876342809857268527181492666076585523454222614448430607090463976110388071563621179309243521787649135092123804450126461701325247110285508798737213415289241897121766062050814464339865212279025365077220118347451642532260891317231601698425405347781576558766108885341539384186149103779290180507797901390754458018860225910587638866698721996985249080665377727122832567541650453063916509507740562371771576600887052290488002716846730182184037173514907007623510736462481219118963581102501279429745608152114447079071296545955556328129049064827597191155468350323033357334614795580196513836932513295235098232432863627047338476598674921955443197402871974304414737008147769710600508543856188955451956490558394409000157221063174037133548793870373369308124100575911510749190527416537688048354726074263164604713088103206288499028661155293002524711798168369442782505877721712235555426981559673123790189944888129439159783549907991204755030788616097218028975231762320726104223508401899601350150464610734585183801149835794509819649582344673258223192829481104198414796264120932539875907078620410177779580682337119482014210566811224169074146006005184296015334904831945050612743939301555762634901709596889552937930005056841724902202379909700176200604696658866753435093208569426984152796992084699598764500215641929227356504032695331250271229766499357233492648404179754627580497906673284769249010566880139754642286518012877424972715571248777330953425757795139855438814879647551042981857075545628298504995116556276244308141272522698557602923329759154851430944159075160104470050906505643212157016062994548509267056828022521758399682162085738577636742266420231403815521737408275969320150382137283062051216210533429120261635465700298299872127080469575905216629851710927572299329742360066898005414188058361249152937377003637037778709442625649062236298338617639305453433799713140719904923491408000548184909970316504870522094612911521504783585364578108047404740314485855131695853864568499370247620657498973331639543669442478273924861044411903321495933935299622052804216775630427501021621494484923170341320208472011115431179656237809554714748829169451318267475315740931306135490405605746151940298915777379324865940392014247194910390028565399201415838518244451757649840134053255914952121496357549905751620236356838923868950444465878404153728999210767221630771142583375539776856770924032439171128738329238486292118322764259218236706843513922998041626570691674239774640360273020642428920820406300681036796511866190490585268371268656062567416494033353353745793268841587674085594101606392429565294256152865277156051965807846896534439858671663652375557050663709209854115637288543699107713132652906676604621616021020654488775639861121084822555364273924535218875171010564984350459098040715869474950783737324541543294064225833400972207117995017729983011719342853816884227205632542189403877555145792685886948286538125067459083421489658587449093441740970251584362701905368008266368363680153285983897195682222665564229137721549841476181788387965404594009095417239635437648688951601473633011052849377275975091184581240985139704330483558617941805766885318489904309128090428029289399642263035542692678994170031645048656163748575101028289542122598621101011223604090869845135693318919958661034687186327806523001882736681686540291434279987039082735159557320727765582310090958963174903510926289561837507477820852752625795311979134663609705925162649874036554911094934798445171607030591715849581196078148928998717952893439058958033363194395229304478733303848572092139926061562035389463519368554301997149435278104374854201957633111250316674204028231747249642367988171149143480082365391303360727969816860269080433836255652921818883371538485915949024928262821585621930024204849429530167055713943379397308654727318409584320441338921899289734341642680763527683656433187410109361445992356501209573665893792343385533886791340168267251914572070982795758700163012331153511511369449577661063655233968563035537985736189050733675553025798326712166371585176033277393305771579454883996401677760539186598260087589924159975554982317246186613579539580703520381597430490077718816296636672322114588856183008456833315563564976040369856031359540744651296751314222087166382723919362254900172209630682772655221367145048308698385675459042492986397794162873110819603027549249009163377738965052271812494034671276355273382682683730737725803770047987110065798510973593143082933630524081823259719166348373516210989634184279214491155953339167834627615548876009022174320466496615906161511836334800944469769451268307655007996530209185041090131657125148158115265592629775392620721457489398854261774240430129877359923051687430411770411823621177342547189591154512624086255771343649980979779609564706095161009596535547116264166011136221325806722391420709550574544089910966022459158094976181118973811448056616180792213348520259204628343993276244899523566622815299490992440576070549296494097272263619461397317756477447665848159911207505468776817064905057025577377448954172606395294317153234937191329373079261667678412450565563112724869786172892067261134773483672903152595918194536490914372028271443632726790453291422043385768380303581507988647017643756664497291500844751635572956981668981815527385050557368467762193596597650134355033758694127999369004325336714686234920186620804068457780271224946989963681010050122571584477786397384360477088959129800630841687787497785866774852901161963870616369325280553124267264568879074587941169497033901751661873208870114791777613634184323125651824273292132400257909203280780485634493213401294150380234205147417592011337944490940441058903461149528850886097929031377325663132767349396274878804185560079130184725660716493858283255198135106551204217753747091490024186900869449165552917869878145448015233831755760707198496522238875527538136416824385910591719609507032239590558942795909008846499477635317104741316560664980876209629304923720971606130529159292286434898141839392405246078412058485164619623818731919367996561027234338244719948329236314903080028731977920103589934113036508673149967153148628275300467320440671412656418281987656896030257062139792618594878744863681900842664303839643644520283470877672866054555090407420997321815853029737365957305790106506917192349199656078183680679566329866469849689168454818845529024427068971234257544949517170930015392764224540393354460527641227736556515029215230754517037275866793421872692249408500955696380534235887403893071858473708226844037633091843504873029910370979568798241677625309311807197734888393818769602191260050292734781142418188809348866497930994947945815337056327543434526242767907080828724460167417944118035859860521346816531677714751627420533193268442139999564873989009560845660131878102529158468342827799526229011477897386474286572591804076458111344858330030313115748228284669460799924883516437412780318366696356271884234834256557701336998873214115490604219281512808335621550123700857719389288839746036457601453676833923834010485273451319705423243856511361732865697158613199299979477738137698173393922375776859259112434970352857506985869499024918951223652295528202085883190831812228597881356228679300274626810498608161885174040942826856394251451368324512514574893738486906660851397495035693703138177426880757537270800944738278563658787225430858816071735880566607922887537351934941478240739369447913591611110417566548943897432415594627627761307011395467991779865395335978312160123334676858804508689113471535524992934874949240441460066394604347804570765432659880447340978924496650445657192041631189337662296403685927550997108861921007729616819027722482207823450544341289585189437576532156416097681060726863727874039070064730400698897130983315274446852122291361227857267404940586092359058303193538621900104808023962446478632100748371537496335808032351309111742209032150159766644205391845550707161948426317907479239423565828969605236295125508241341093943439351620161955898352783646726347312798178548108383446456442525377712725160294860532287277891117151093230947572084231080729581374619359450334159565653823583946306553611838747045798554345518954615073014087125010701050387636903112980169054217398748208490911707191398502631605967680294025806884286917690212639566496254090787863309466872907568023266334469219974276208427365239285623072043501022551187583713139987060956949941963776781620508698449109978831898600695285288755454363788767508034767780072202177983631166208521968018104072238026184509445956797604065380259923678766282907831040871609943467730702545964445049682436051804669597712899394870226531263854914631537518690431327621400578273211980651723939585925646587965524621083024946161799670446323612423489742382446012513990761085873934004844702433687584594881390476646367098441668252906078311190986798658861468166578154890242406629090269143139072292465603602473860015369038319663807882183589553252117761105250431982533128592121373254479902651819004630513068766108506425139108227931865120550196333344108889069011356580230347444630625411336569069460672882045961985308587215670599828581357770917368876705407095988801882118431754778517705992861577369345550676094030782937813083408764146784282087518945268114920032269608776096052154361857763831669388545102653029405462465367302569373141847298082962304878185883940209413974854579637276763276310205534310894718857279397893509459795396313297860081578649604929191312919510624001521713847243527639453116632808087560053234875861536086205468097315488066532445252735028009617700680227796864580490360275327370734131756668562469332100155434968876224009637226515574171408590171236495495586440557853426704229168459502511219112572319827687765929849549257120976454972523389896693453923071555013485205254901043369002252123520745437416866068962837162935205616023086155161943076055047974046031648362601970005239667597987002482368537719044730628230188823183557117919060758419905225496007048274346475395308176463211778494276518928081939159045881888649396869666888908538404259882453056986272627341039808446436419812517095723182125530102858086010232109739626791050693657611782467946559207001308746602129248245145077804382615468344891829663157201480644115433896246134054925008866744792852788887927063738576572308178735942353980366130548313112658117587755028152321233257316385590677661020904152198849617415838451453940842081471906216733608895957174428690213342264805428818452494004044182837164254295234976556356258167124569117835666518004133307864344879602117990163031650777536245800006174736087787751988333905087830438960897350538788479551910430464532190427151903085348831619286273924364337441029675418745063088021245138454943382707332179969154212467454722847224217663997253027255022496431546227143833344148282241809222091082945676954929123706307590904832091812612001639068326518941996895049573184509108308384025990517494195430423498494984215404545225403691634492664224877757106361962681045335993399708381929972706244792097347944029453317499005048984215433385336597715298019656550997463037351033491460664849916157422326787885419344827328512911645925004780064844650971971222201399682980976185268702672046388256029808403274601020719365355085216085753392529737336472465000221696370908135982945866985081820474314323265726357481916728621616909978347783358451547773133774230482137340989716955019963877792643226309057275409787580280940982075836583985029855352415126179947984970155019031152904497826640422139639272128875617214114262782452095067548164475009939234715521511608034218567585046564759959467033340159052384134920625607936122916335755872621158201282831145176928571477862104645989734522281452338970497408913551350735781058819063765465565917469226607675496481251899980678859678407105087863937906822088850575313882169527865361635669648381918943884109891426799558055694358376823749123667446807433503786311835839895786784293426195744677226722459074876532430002830252738403272661464527128382447414851221248406891414550712720891790853191156327816245541068325282873651287192324462943641100385347044648806362700873701849433686112694326874283193377766815119149568070399886952188427330548232920110292944797693373337203406894547246827260284397551634797152870882128993508859673464144371608069762676895739688718195034396040821772030620929884926797699947758218400554231918593405957996552224436666933615746204114201797356243483493629544336461178436521383695810545532361695829442483029882881609238703639208589564532789018410099043221504698437272030410521424710403102865080829497407889266456345938262796698276401369171113704497225514005175337780516375810511442292157513451346212166219328005409253225822542285805142266265568082963275547539050329334794733377266165817010832642627227138962390662331625854209883961166133205458521847818314461397882877990428580882827237713545091166109601772290069030835060916460865790908358361634816308609809950193311021339678153730661439803496459840249539687847487250959341928438818764052584523388526185852418751045925155797581555834767463005019640977418721587559159739250735984025334653567453475042666270588576329941626388991990762280065595631265223482718845520571728211758152115532844758697603063704234034780543135087203393536550009905939578583508351876615120061671741463721556698353336673970833851324397243707204058077510939247716322073809744388351308959817723138171519820896327456306210893263423384273587037675711315539922548872678930918639118426233500652425884636882207189259515108624831329704348371068244002057098555856368958341525068144530956020653992759675200837552139387655407158060573506484911725363746814423679753998952201418982295938072522074524335632504015505418001244771995721646270984227943469669185675852075484689215819378087063246114861366339838572683443110805043587874476939910454739210104647296028307071096614111226170998928589126492199169757406003540753178074469429523401003290148641277065349580682052580411181548015372932800505751476194260293321034097680011512511094701746367112415125931297980999909206847165116644186046976272859785013522966337178381716849884981531483511786664927760066596320356417812311078173331628611477842117073917593886914522504484860172656032387802981445358283038762145414343354833570529772150501184412722531580867871807182170826795423337929356358577375804828924888394804874231818947290832683786296337458761742611721953519021416737978440622929340175759720367894273663566653104969646144417834029453820020045736419655162893769608181459294995231973848798958805208400071941469515214176933686464027858669728514092638573841226328322874207169228767129922382974651482717422961287900826032490754768434142541591159283796191937332390867406006661183420917177620117313494438563159143916392400417187776412073500807007236316144268059731681489163158015902016626454912762129295712192418716354757928908403715226862664462887231543223101807872427222534092170489841990732509285136461902797818989556296201412830804578769890265631751272028394519470147490060144978742019082927941705709982732214874221198859101255037058343838052358641289425191721042790173421236829167367737238714932198534835452490123600922924316659211636273291910454551710343000629405178680269206238596673166481035433567013757620603541530920847965579156407158663432890210761743980557525045865679412303647161012145996224572733197778260490018507529912992588662358726659516378191188752091830156523652425486912328059383568146229966869444999106177586177252423661056018327427181280609142919788916158235824633905765715124262278058409726979552726315469243465964297253293627974437655355135466764971279282673773824943979176569528120420951244697573403968596293553564212486690528603312393995639925506938147345901156580491816301652491823456256166745749735010146638554928529484388562396426147421867260911595692299298054207779445523740224638532078783996976374782822732799109127382589919048974483824811914250579096685354209207067319542691248575937762133516038973660079477771530522632434775936603995181543311662959329195756411464363276151841465501512961544830181366628089940515263866683111839802912685954268795488029724893575269202988823495773902028938171159078302895137969918527856688330262503222519641902277551999651020608014461752374931401107463895668819401516196357332013282689485900375720413650836136757991287420840333422250984215206633322860090367032359198424302014169394361427295013666930716474745522441326513730729326162521684644661435042415769056797319145613642533960830939588533650894984642829248135379535614410641884167680451193522315575017035393258545968291891062318276969691404740431492879075897440320165124008089046621913721069355708244156745928304535770219447710886628296594922995238100461374183938403706035073571783299769632960530098331842363804798312234821919851694944897697840042508084919047909080329092028456291244785362180165465625765807966312579456461570533425347378719540268046129013960739553728897550986891224101788212260400565331030253560679700841671405898961529950937245370201129032715668764076806467890696653994146505421161228380661232420991000320479711031994125252588741611767212266742829441827402997071406095416559985337378120071915423245164439919293034788553883311561568373806002969833932469069363818002902100456004499726147829990505810423154133953539698582011707033726215412771584789594050308220875815632977404533818226322762840704038920211759289887991416979122197961211937746034323454481863294503562913542592054591433765918127730939867448447673677367939942370459635884990178536578014195636750691670231884795072491863123686998780570126961611594592551601833559367095264501129664988555262761033963357777179932212575365183499243480073137199602769817251540039981049751014911375208253890875695926750151064078811542332298129597526838064986349359541206290670485217338128394711424067870913213720265584314491936592887015444779981805501115755669360639259753888088146420974698942413451628145163812158656451008785084754100151026027750642777801452936841543044203972408832892716131486398971224189288372945103653278490368596485989376328173031446086304006571591919548240040289667210516855165822241338412854923576846071678936358198471372628610119802102996307478871130109112209520643715960596877256211709964801358695359463980411702667734367902383521710765380207668074973960833983818377360176297176435148319533117056383968889184740843027531362940409788678088058813144118466915931201355461890678006630203452401512254092414847792822979845269926620881918443900598891016719237506892282275278774055386627652317833853752700677060306125038180421714267079333885812700541431076959660480765781001944314706509482442415412779408305739908517091351983046411699183321634576309378020348961504905505522638075516316595823959311777706362271887447026473515933748614842626378839456495716322270818950169105521256456344802074437961090050926240616922591163336069736643621729708959746818880446311220642487515822648869549773216613324767403314951046590389708865508703574451046861065693699765765900798324676818436449313483828325402328732205934131998106678497799530417940375381556770984616214185653683273379166920440779425724115178497369219308854193700938229275675055767577494547053255593601456084674219316765653823525452151153716540169027635079434282864842516585791665705679102690122537328568275076191686011336401012934170882668444342614123297307363169865364027984855673072732998978002609171888247669607631335104923015011018733901383485609455639619969608035920594935719395405121442722851094245839100053993893490617983162651245760151774878039564165033341755427509940407633345463875314293012549272995558343629620600224459169818655813876123278594038394514431245205015753655802418009065312498040492039659700483408100739747254660138780213331831070711180254640234090837467817783162762533070524685812848457125115471146764791688083748780898018648231211247783995342908777647093517278607044948824826009536594864021404670852856300343410213976222781340948726442455373475630618141348012005639028084140749041921180653876035919716474162185957083940576331197840985851296675135944850998011336508781337457881626189620937036582477057457469178878740982911645217224803492009015590962537859837935777030093891867085462634590018668522594561796884312595119371796239516084307706236495057540311214126367700921345946905124072764066789450865347116255770878984415018464429794602978445504013555974945835682465831708824096416371514039020104604292012401997948688318319954805601988898264676930666456701941263968226336827141788747774735338935309709232137129727546088608887346901645226229344022025550985408055092420915363567082098208063159448405134315586783890070196405391277120073243444554557160757806563247004123052144422932711060183749287738715050065736760823492050883479414665119701548281736002844465589103145758587546894873769653508133143528383310502279598209814845646061852895675857037898186465181727141345576508225581770103096105040549189757583565439928857451818181769328110494709204700487331763414358686338273617356399866013457622687647169518813496277290802737486882557403625064194883275484857933850058973716783448904527373013055586207652269121050416219590584748328952789931154961429026331676599118283877016437652793670088648659798986656632575068410508269869604225847201373662642491322889973452342599484007245230521109179980219728853999802882058613196243217339781446651566889545844110965694268859351022892689827167300551022609348276604742009460163993976461199293609235193128183074138369712666781040141922458512394216886002237164587782963476202300094830002951414378453390622289803653243837134316702654480513516213077381203654404257844929526756850788552600341257208915813464187191308617267029288319852303838709787197904621741081196829061355246548309805412804098488177585351659620458826910574766250938787957832751592919989083442330510184571222245940114763624344381895033489756719610379012411843954963828744399463608655033562265962914075172719892923155855040713622631115139515598090512598636652353328962477836272285902995529929049500401295050320489505994220401618963915839785390602547464452205772478032670597513856416344154420060219564589094433003190681651114059743890124829766978604250012177726281035816405666844993760230315820667615450283862001092713491287012917894646075949833574429866617077888302015158145356389512236064951205761843784410663877590247973359105655086890207331501500089291220699400070265700297558352553869725264223122169719260585772148394996956164791414711120484600448694912122433571978474904770631169523386449750401146268645409648145368880383726080426671592827003197298367345784515901638573290276448211403817974863888453376957702978894869185793079460234355545963806098569891887027645243059586057552371189510915053986389655921140538205839476694119700114149604944510245279325041967299057590992681364576830925828305667284648523916448181796297546326666589346019374716862127427479239930631892619386151554540845598346650674377240084015558731454437962810991470122921218009989418131034706382327119614434452804274728214896100602012593677757098021746326633904406318430770322136730936973682463917265531651915419927481828980960190127286166568428038314584981323343366281606915489897430963072747782332436518819009299024826653618675588709419023482751524066286996764574658784582673112765734363038198407798357265818353394958912127586057667430253955221861447893011994407157713389712097458186980718217241050759667926681054211544909053971339891287321964767271079908525408904543687875022848862886383743549020331757710135428557165955226260893468713201853012839327459612347814854307615688753388775555406424632220944659840289783833113205043646743088462078839330977746124607359381623828412172785884536610657344952048323850969850367104323553669775824629958308106923230481059235205510376848619064672621414337646541590097372647426797730470022553105668888420862036944170650151730656936695541548077590995565495449137856145189809422636395700466709281046105705136504148711728954736209104303257468472083863438532511439393013911127331700632974334954374118359673810278969493662064447479197816827867734428081064245761668490559282454897391296323773877763662928910319261088919254902586418242622626602812272282239862256986172868970016860620690451962893445924721497797588026035034779406620861636629897650316056794624799377332859288459695850096960944901839845132975660425507847606464741487964796108094933314783993242187917060342956989729354919917769911977907880861701662791210207938951227578491442740934068490394018005676692824001336362475114642847562548305255423653237479113027548676601160001867759836820036416914402832063959576603880791021580815133280913805541847018802245504574933488258493705791192912681383842745292661353889093364039072303526073277486931468551499368655180119600763055480279339454390678528831530275937474338954398159710120454978448034407126409432600617193246155368992676449579766596513488289810378623752752761582229517262627036934215744642813976481645582094598658488820749793379336134582140205577001763035539128275739519521363326838674673932635719435531899974531617891098126331049976105185243904732516945443537971605536511959905413420577470381441923965119014843503293059203371147006522030678072479550741027704307848051652250863080748437017529825914079416693810608738521394683934453261413786496982348094862768784684024346837877996121660886114332044853902895905814295946812196674155419038872042171043426207230446798450665676084429597121464632055311571046364391768370433206420716772147966841738638630158547587547253023376930136540335945986689056673140846080393317566134885867979840993010060757016543520046792514329492707438625299980579657931397752928845197974940832144029960164065842966340349443581301154133519946413518877361561514789121379241655151986715684025942968994745947931178377775349150014844836395167889585337888033657705555272456911823360334055811982457609274221936167817222029219895095163546089475452516890332005484264773867499140684393883562799831654079582157331789999443127500219931687953629443458365224988179854712134953948429778867772490884800780206115575770572469355260158388534586892742048977962770774799494787409279628359377375173302548837010374995176766735638235198209167152749055545644315223566009614944964530624351320037505426269246004470645952465710622521246547478644629569803436409792739382447303004131900313138271943399476513359314879702013954479863046688649433102327404814806418225830528858281447065875634655388773064164950145031552259550085429149977621334025932779196541053464773345098796479123228457270001792274631766552920897480507244867097742312505804472803323813941165254648755797443845641536174057425096771005950432332110021502292249858868794339390142704554939847061533407521648558083326596914705288035613142623610334457769756603014142592061574852497922658755502738939814357853232730864758944833906803439027562389980907545929852093140950688940156442351625747240378823210602758910732416236587784425393604393377470982907520571392650391071312963450019525457184171109548641007370305912620187723641072697099149526077982977876711941766396636210632439959674008093430743190950531756229897650861334456724412407873200419645473310463880548458815490801604948494164154677838820245671964250471770311333968996258868251184802475324742000910169745686724310006097143688796300822688960858388693297712854975438118507862090400059022131394916192776514920929451327620203684600639346830760181787511058713385931392372417200404548870732991577993996709005418745641280057558180949568182303919306458466761212071262859959651259196063608961821084662667245664436507913494600757775600768068123505285721110426657748840580034729804324290999839634319582820865417961319334872342169061276605202974374643027819017511208352361069601187939628317300171932541710436395177154911331129464986250106722737689370278425644835328009684846739330846059358652159561466754567715566123635579095406087172015523409915115706351725288943705488004423407175508605068979699531557151135671600424898728784437582401144598609230066288278807116645422072489551162165948495788173037437405291728450296758980288218516801082734469459790380090573396995607091122246941562503987965545309397689200525973609180469802465657320811070440659148868099763038968079266448611254723597305021947218610854809998230790633134437722460709385039915900925578495687307009221013473297370150286744440341544437242434145307613640210596071183499451422914968939529359153353004085909979354601915012852642077220957667375866952225129715404307413332356046605002428431676904115964437397347910247653682059526661546736417022327519049015758064867239813582362766497405004480123765854146865392706990247052487025047169811085376313084496871637034055554557156797675858562454429538906485123806819689483859511128576808229787005229888478522145051138704261623029111896538814805069292677392106817474237705389262228466442879852139348506501354373773464925757228965683191804200259469612717920226513556648634491009794761103932438215422283284823450468174802098247215678611128815583081087516260700333880770909425435127537514994296000650071685068165127985491464840432940288834001991474780524984992748123333362488026606111494028591720719335333008021163566849018997037520632889675249815703743500272404419506231594514956643649263814248898629170868539132222416770191794447555140077719348291300913154405755173937371209658178962832457781513309747453070574492967438858593359276508192163290804287964634235813586365630194342915587524314050348168640423446731316854644418712642200105401992331400043759317229302097269558696088460648288007943783969032967917023158324499890574160168209185307926054507587473181678303385234735082979815026692065437135352042461775212593850165317104500409667624192056619716988104313336403329333818793315504544379239849176288095616439248898339281944954884333088792806413997284263842023511263189903315446247061030248458257839096504603256711942400500306817594410045784284264020236391501026117721439104094590228890850510554749026560042618852116559932411378727377008495729073051902694595752027922413270962881476999885216372661747997413977053734309077115937602696611186858515228777049774799604757339530967490030180996961208089933404244204631823878051673263569883940833576754652594462604329091079841744067336760067868378821051949082458430592313510398293000817726632633480862870784135962644116866327256096187474043834085231802922347882816758035163139478710862070194910434636614577909012737681286033530483338623768932490957478120262964341143882003165193662048726184468363416534090553631513755809769279862878046358621682676039432291681360571078970274665286462424754918264835243527182109392450109230177123178572294120510502854893395483780494201139150336685584811076295230386337435712016312688772159124326850420051676984232138209013073713611566630641809498383626272088684045374890880676843963306627999938363557779669441314601075156247456688940907177992827613617937889869965802577153904906540988582369706006822822219070896421713070653923393349635475008497542755024537825258550059409115017870509933261683428069545122027943930142120857119518027603358896455259491009567490209165594535143005097201101938148588807244214351155457519073585854170642552614915159617265225290236804415722277375773790542174224947029141874733015890977896677335045046103038661116843608037195932167394187635248713893458577163134541383655394203457889027208282685471305163835565234740062359818110686559027426395780273208847363101064033749135976390971376734671954238831568313029650464055348469165109503053646352334587484697278887552902556009713580981408915720051134204828111396645120744817534613079527737921723616086282092156882747725424683088582326732560192440454049041119802592380012153292304252046141785449821371717140119995098591752318834093530131067114078722877152773251007429289956371666719419408387390797506528632021830908086604756509175544594220379062840223737208605611015578104415370350593917989302036091507214620647060256870165146210014962490856837385061709134819988671647648173394498443905059338441401905503469026212650239540149765417637262734660912203193503862809238588901201215977237803553159395381956711141927193361080347184068251126822567143539998575873596947031279865285546475760761358400672174603393522893001989183960768907883201290539324243304362832682914113317630185236768260367068268438489885492643725878486373945663234096197025407376956846235481116787383994616337958663731350075926675790882764456663161878642568503844389624132651682299372739335319505764807693847335362267523329692314423451774158995933980960440234151368559342629888268287248061750567610979101155546734310217695536211847903049019945838315089649094320391513225397624369088285101778308861269511542256750806824074471458833615795957506612973729103082857562678905654351791209151578561414302875963335461772525363584260973238048461924715546073669717059929591286053899783485798019059759087960300399492506765107707611831415672030666869699903191623504022716803125474340009120354807446335863000101490717925685423375864087780403309223152092496180173114556748293328451913141710828130640026618331654848347588342030906360789513073073060415507947800243353228826875053109240520270480972100723734582607990293779725950457426465325744218551336686624252821607054808384554816792210764696648299870949063356446164935290838060159993740740218311394648001872387087029363240691277244294689285248070589226990307514279746929382305577395451079529949761355067138566247045870810823294364031736473308238250856751368501940997270921067209449391410286338090733508045860061146295371326940907061599446968606309489692487641718872623326634647790526447372126688436641866421089157214762044859517456371613596543142383754413259296234351295456019524969202768323649583838861383301612300222388015905610455153837312912696876198713075266732091400343560979916906238150087046884013167818293980325181847055286161380030369790962614951860490406819838964235310001121269100760479593702020060504905048425578712330614808365506355745932028343757559707773588722356427022983908071024911509985373467140862481783541346854088759844755798983263986273793230357321510877848741111568885271416837402637463391192671839623238294245953198178799228138892725993762175664728330968902660113215207826766943904805197539617925719535519753794613815436862159314606514941359225685033721198876082806841830180949726880836213005075364332201306124908891473845749076230473030374837603460203664270972595745497269983248100212929144110688028158844981807799395928886051750735014372699876851790092378090453451493541528274851604319652236949593301397489919454457789783125513510559314629212967186858516965049016773060455279339757675429415400255133846892831300620558756833540533313319227598549936112605135852647504144664256738958709745835139869544051109031437629487081388150251834168849930639095121843515009682484206381048533169006615862240672112913065067192939619851993219023631822957953266201612569795697409885593188388274617317570935804938949366072997470364301763639859110260613296604989265162687147528954119620295759943616313317961055687731096229262790272199522915753111674992418649393969613294426555510348980183953160695068374779955579790387904485964885032330291065107031757928771609373692826546387174850841760144280711179711828176878732985775718848919672768370570861091779073985878094813040014089881015170904610712861644823805338040393415275318160493760240914100867280124197080994691938812263501393273766098158987930715030603652508643756782506501001306718803530173766344632274539450286884065940305619436936003342030892032817034624453864165696476843166753591127387620299012460345534935441173314514357322790914709069552693543788379535366550923948513531923180389053407722933918591639183244339433807244478342199124993983387006197805541655409504926840870313397374942754283579663302732244071593766624571229529260036889510442390356231496527449992343970122332798303737472589269723699205318561597402107531547682989833848866826742823787397489347945667978835204251090960500524273147446607533104042332975410615464628087959397783394161296320577993955476862186427217619125342745981054177555753283364238778071741075402005862254800974734156863259181507561345157607541981136969339960753078348465578829158891425919846088860271282199280372743585044343735728478368674627804548833859139532079013396107482248395343385020835314619184835427193394011445486281562965078663929055957373182559582083453763376600215177787133844095617545803116580343872168790350280948141532975019748212498380323403534615274522620312107665890070076721442513992490269896761357330042259122882126475226148774707112737869327752123932596311772134559434914066585123782718957540676236269812252707723130487166144990727982340299637049974979144265067387806953745251931606041655892228635969402545170473288196980128072877619850788447596497188467357886814003281900553479391541429042536487599230262247847942941955990405948505867083688274724206801761640937754735613381773240850721656556534380098088216991866413848124734613188878454798096306259334262426690345812657957744342661399703384163073670616404556454034526264114249365982578577052761399377885487496254818986943489692810615742722310553550279851391673994201446791867810213028193997316641639793915386254060833975302752587820287117337364175492800556346215059168661593074230829661749904013500189477386945391965483105660903465497873366484509764183159529259435132290235336174177342380082441474385179312085244686025243256123518262631052820497287076582472422280929166409787084233010707113705791459355027145719578551573941687314182174375578872712377462793855780125301632456950884237595483221684889243898457335877682843753139016035305858131308791026253343133794755461912258799775719868612402626885002370093984021672300471724259888248361831285875800541501587404500628089023970960502293111324799621641034287487933100949734572651922827796850467353068515467574589354498506711849948511132167051434353780851584841872473220749481488775687164477364526057626986063370976101781972455588642252244018507943152132169640773089767266870248832622205179420230677606698733245706968509836202271250857787375357128322348772600801058977401649111360407974926114591205626046496578462194384019146767159134915831383616903741125712717822789401532174194919498650245344533546938278255768158089190497988854387001622194942717232612027535979226583605951538391848998684110207435347988999983181031911606645478445769775641198476438163223518931044408123487968946594594586429331391140766680203877188052146191773639339568899665737671399326273912026564575116233076759141079763458241932233271513284347939043898498022983386022855106453958780667303973621057190635567992380708471683799024972606175370066582322906912547043749312995460680579384105727614050465540396072565404017694391609198295051619205817771498222188511783460460512677236674933372352500845951233827096805054569558205603649200836894049750333889787201936049862212244556580195107945085678904188511172570789580143500632303982568355692840844765583600582896389442335861034646091378450053931887759135778620308759246201461905543611568613806310298339674417913084206004999373436761467233760771102401371911552038341406042386248852463679800139635411101935534998803747822208208642851694178402355150442204377818675680537706132776318576913607544579895861963665057391722819485605032744002778141280604077325293648251726684499852831538331657283119523277636727089218965674823808857482605741608443471013862768310381187906060912086692349140566599865669145923695233874846166237923291013689741646865524015966003946064845447252706239779086954937842009717648384488732065469494630348730663670105542505361609197099818992314982371447014280859523908951394617717018327298917390947196599375922328981896306319207721433045474015118548053046583438205971831444972339918334881652403930006498917666738810957006762170877914940461717850938094548648090937436222219151121357240431495141390076799365178846846204134449686595966156297134316680039711202631051149080782759200056033015029577855567992728683928239148763761420254321330697348373830996909190174353896304832935664480546436792437962014121353729829154544536575375179631912570174769886049537437446172548214802894756104534184008875867260443169791534036376731348544046659377480423773467789792557717458681074086541754910008893795979237303140637999187555108904434937100263413449384834563025070555503259675325667169394625918455574625889794889410168633917386755328935647318793626137390036548713319125176863423228719188348147359311373529902769317267951981569747591769187456829062257537419818367319068489454867108213308015113646911205574463796458559928731675874912327998557650667292188548700060985518914927428551580901264929714152182138730075958275510034465601071519873904156216814368754056500206583897813617094469702854167650702221411158319044893246375482620724795177899337833566075652159936081002031130787009329310720370298586221011065383712258259523113775946920352735581466054987067948460706703455736197036422766924449114022915034475862699730952061532430144981024915198732245764522615054304996070847802910753071810966123914671487692039371753015486495255522133454483505408201157388161293998506010368020836046492058334842467526437513696825550720749860399640345613665732479727731586355983926809390888167182551545751449077763599386346050807534044075778496815344067095098799637807611493955501668107575681236313751460254825180242529050825815498945869489853340691187523198966480999908129494528562825743038059861576353331353020866332862724464337402839515414829811238158077391132048276585154744789078643431847353906211221865466227836161125077126939630756253662580032599822040193386262019604759348666309909745684837943199997006381808800352149111680290011150073852337901473778296134362967238440595671835438148878911203903829201165800471088614929511919680170611232450828142722473559306918186440297482920552713980359004352238250509675657045904584037923949037049847613657902693013549762096505835862192719958894529151260993480605600161454179380118773449129278428391678994900020826408687425887768614381039109549095693688619900834159159663924425430008535574635394710617855386415047046651648023921716134010961822011196443840579761994636921949083931448999833471945408240940757756870846468547216065461535527294623334106714368095942921586706776517256941493385445403050971744087841814157567962536088229496327022224286994677850485615697725620573893175089790803129309961352905628199977908604868934592561874669508935422814952685920205493327548075963996680938127348128969100164113061568554438454418720816100726513032193364455944069665369177658182688316249970475892708671205727864358524728130388750276391481507612205590874730784661766205676608306045990566173377237187843724135605541313787004862182343098168156615992639258362452317729837820428884848476535594072635771352769227915119715889946691328185768024212096832194120482535064157792807882708101874412252214339764410727342318070699059254236117484139668244125088242984134415759277635186837600531034912751668466877759294103025681618020431869621805982885401680159474669989293331675912295368247389950013368730841235166133042970452833806028455254669759765531662519637883278694730707638322792332867701344201272907731632497060503709713000466838561742613563644625587510671867665607132619978228515120820592011203133852936769454806974078041299466467348117602201494986504383191638300262899191924069618843656435650034044984453437255473088634620024774116716817032694756760425022351802419623310322782206838089658446090974607399691239745516087883177494658035609680003284071770703466484886171781979525803078744439131378232934360071305636401946878332526472969012873205570744938440428399195457692301541589507000057914392487210658170214949931182465305239557258756963524181489556659881733608046199528712899126499163240852646097361816721646839584683031320245481764158210720144479748960261363866830544286396251136900652248870145583870749289032364942482989732372084419451065640548417082196177102419183379593631084015337605647458205726059583845382344466099642230937412137669910330897553059373423273795387058254493085661146102471614297235164806925679672952425930949811124670046956639912179838875524334194618803659963971799612079667520905042759364432408315561055999181289651118859815166071942332130096668008192320452640119300105628897330002555350253052405215956344708390278730440406731064399295495949790097242451087736331157298047889738622427887293982714523322693674974279520694629527618693664988962326585085522087316738913970536542833163393624952231154631634315462825132162846488880259859471201644922176561802885124315346137075669716430492868718033391945584144215120138491615429791178320108700154501979988643458979241217161150340046097905580854181687840649814632651599369870663034935787689942276052689671145827756124940718567996767492447375850452065782212699493996895430551406304361345240711926525684337281451293873012652436158914587561871455655441488269554078447867019206485264325936640329879962970099642195307674696184697037826627068115558239244177181107356797637412474108464094475499293651170218152518817707001539454647101366148728333129786087677758641553894756973815477929415190143285711630294228056400816908164757910838985378443083921483752122626041905484881760607188944240766109908930437782716513167588347715544445902492521618419117484629457760989481083149007270007980661304658557347514648636507717260800041833005209943371067654425965953779131921844065076346452535844129083009051964182420794222937880725301748584530940792871675420412518497430311637500957574638102549857710700454522351458232095701656451138369402021778100976172065287949313544288107937281056350702206592667862283112564489553179596770500064059031835248375311135387090225768145253141407526756065586053843188576014410699879159580826284636219486070705288664942089015308698150768384418423279319536383908047501832733439113745204328860364995787923630675457947543891645289097825760543245742273955274562822590636875572422321074711785835099152712688584913754832068099978378215632517845664196068665852820279306148841043690032518250773537154231879992350582524012584777809796485469243453553478272361883303614234493815787308025870579594542516733955651671494654747837489775360640818650194954519538144625950222955433886067485830534745990867353963990174926808653165321417195301202716411056894781840996412371546571421355005355516053295419251326596019758034990326248797856971190494704956245728730082477042112737605643716054878351986718182130914193712210419702614299724994100589823958469358286392784753184311028679204836511356881006938385237264149708125989828955632831494891588307572989465050462533672399785547645786286858979044346803563444532856148704755266599939546996142960335452550320064264146711678925065027732506595771751889436910723780125776067016974949161251768983088928080625924358084683014690773993578598208242509520725679798605973968746267188069767332223311789947394734780765746011804509319704848775633904541814165312879581353174752004657539649891677274889333682784437987102308973220876274852562020181090346276569966196778741446716804632632208062608743985964288042961271324052895373915729726064585105470521542595244405050791696091573519008903992633263434326879416062996795846702882797747227117366752551090848347700737374743535474195587557979874430754400990891238900037072620073457531295137082927434051398426356465743126902436767171584563562015337401041700323049783128959708004280544612007073826721610823847924030369299771218085434527010893724607263204683594383454346037184472808412329080029563587496665180232835702556162146435033688227536351652290224630435072048612508378952306197420646628909100043837929986461491080339574680941728004414987651752984579219305012381733134977379994737309453682337553751825652543194738979531795743612984601457769125896532681629584748439206933358034675729540732707444959736580354429497235597353678361320239843770960217266117006554438879430451669830701707664095924086890411436474061805994257544683222691994759464947587697683367940097823907340656910126531819201364951612137266634328901041702546874617346840771005941053387886886184433082229722515173910325533241201837723471547687813419896750135887061105768592879164544805790352554041777285952330414416817402062341238285466006976723246232846057039944619860985632290121260030830129806046896981666234547202344094025191950041130698125377898885526780477153265136562116476864526307169263006172151990215784884423031099624484370536919002650465027459107643356336547787933565899581180189690896811922421481133110596085694937731801449792928230488184445424110436212991797465024803437807533014506968744740817705269163684376613714552028909433426160147102106261522298248105923540708118325307738112916445185922617127914135080931589787506741522489145799424582690909845678897656542525963259999829868960373199614407679794808583449380595612354433215095244534805910916241242270558837973090085119733941391154868035113468666507897325227191857167246339117268119821470439927850361357097456706110029239884570893157593228430130953386188326094075596280091061315272041586232788865849852570456841895739203673801931218188194754014135390997072628850193311841104258120160137213656074307024052840340633136168444081732850845605566636373697435284295125713555465965682757161874371683376903809533794773107896654981774183844522075904733123532191835484845688630914158572018928257109806069404443261334431156819770977201138944494413662025835729142144071951345170022217880154469167363687097415671030858880915116510844924651163571097854066467966251605755978570879379552542913634103161812334694699285471644746514077074354417465699077059942798159053225043067966024482912728101523942295229274277840709851611249118971056640483643397600884115063822603984716366269778941768839109532087638573858334188017955030519506567952350182730438256417386415538082322321879897536025154189323826197987302454178344990932409452659246992252116465202405213580359370935541276213643796398462592769178815594752981453915487390923728496877577336355411195271310141170744356889021266415533274654059905539262120104874771716223538545101188997992360805954389787457521270767990424374017490424937258421997715897187030552804926553169694826364609620187043265389547741145088095087481376727585081719388786127254634803460272057804461026662752315985258583414770197818075124526040486719832662674063964577736285274800832651594707229448642610414458441037634409105279494159018256950750721326051320527576126962636862896325528849661735956175906248410037691956157603045109905478480492162601088865360084857063805216594320344455280133203619818004697199531827171997090074664521705097958777210576355654839395916105463427715930478021267746378983927706254583061316727027483529555261236786174719996974278238497437616624554895358571277135957582351780941592972405481766533835925641507215587998648811175952112749842765691938006843207406553131618624702235607394174488078269246162714267228966395991329756969480746225848928476671429091846842993272004558851002237138233506433074868990716433287714834637160695779669837002506143631882675085723054021049582245734734479218103087742055183997063004020437422446324362063316808745537794629100428449181211429359466895853087823605058756740493037014588582624273020004820931469634807690833944700729360383623062792763629255682936967032768138394445304926248830637070530413166109028386912646411291774250621601606186683377468525675215837038771041879448782250008922576004517054556234685163157439140264292299165405233698596560619532338346215128182696328688868195068880946024539513545540651979962675331124398938583651993949549063592452120760514874579422709222353433669983519101322323800061842208040172837296828968283638550126478884874629323226394574610222853331745947667675742623382633141540148684226731926716979624320680582991434868258312321586151910172834295817105051441525234781836830692082875794354027109611322507039427096083001711390170055909091610953958417999659765765554813074544766945019403051285035880831144925988206209304222475508647959419559238780908913503748899751645780940065719475868167693399753749918159126810529375024469869219524732322443136148173535759191805432033105559576451954994704552499585562999148028951039258189026343535150444123243666440836249761585288152379549757986569562889327785131283226582054530322370137475308351479447996354829457322362258921658221202468048802091949186235374713910905493030064330340713936402481943122955922750983301218836909593167175790281316953210255905124222441547522180205926455292776989887452557925648770030680142419365361777608977748050062078770821490073853561013928767962198659267461758775724379107023293423113011207300790315054928919289602559604105799750513715626694920971666499609824567702764194877272917027556736538384384436701325264309494712997758292355077356221216137233053026217590111936557332628898956299480487029958393981819783219093597818953638856026480055531142471534363195380762057137461635037255157343195449690276482078307782968998759070183723478488782600766772380510425698673340678187413812420773058504810943639657186324187371591846866190024095096084903091991344855963186137212436123285805855843446870809298666484754651397518990357787934232601749972988765580813393619046957061883283302540634236576211736562607839547441284980161675819953094464097984020958198539329296568083844552977277968596432147489570356430173998825437910091537427597091419487022224324581010111644892037858679669220777546707485582451955407057840753413298746964790048834976189286891046407186635459131027920661831046403282726544555513529811076625043468706863547047637936144209069965748578045742128966199882388159740567859499689757004087321755258003404024182308575351210960835147235784568010265505107063737948575343545303940553000561662119184714300846577364725349532947824357121652048913391260499357853444210909865084060533962709092097178439513415633263042117616432907620673894275792207952935641877275894487822185987164765729315952085391431987464747243524756840226931782191559689477388705286823852979403349692745296001385905699286601469997977909928305222031632211503572312846253661891105187214358403049496405393917273958815188834823701311052740890647788309405588795858667602537691932361725089164422635560287886247360258063046107223703381154757160939866847041509427955592289967907404825743102276133070954817448064641936998765727415392089572586113869620419407109434244568152053190759744080916476750116377308167931321477210585423924267285315107814848071825674291997376628203614289935726254247991699234810150632731725813420817921038950623358557222489798152798503873377651219199997681263837093092163574136984977525814900683334818084533741312589969025253505850960890385011686186065773961247418664610277182051711694008069742577465039089138247469936773088103318384237921810046302335312166648148814554392356275589752623441865825931308640434745208227717860474535296361352075253508041164131652058517157575256400992960326059654709328673986051749671313670628891780139760780850310345669846864603728020552257934075893686695149205382466915951281099705041213552704592576053431768756812084011874116302089135160518042322088776176308917551553580524086702904389413204914218243714233443487017861094920947673155339259139050713032964827075266175954672394138566624180341440343668047789196244667729850864419654646838439185309787443962492275715204094763345000616182543699422886433135914207632128840366513607409183201760502236335133964874013361648489156858109495824412854062467190538978810047564142225236172503454847330326339352515472513124199936633322259947281594554535464691451202272494351588642499268047987640740479252515301271477384977930322411417857170835383873973282888492426971043121060377636460830792793490046927758537749610913874297466900654932030328080667562348816377252404414466182376518887533749941338493338102536009472148443214595782567767898600549513507205016947822858920325430658791330970145706182127023676944564323430446807760447009295282463073773850654311760893086577245791811109298591010486819036155506992953754749472880199621518437766522164451127159475317570747699712251998470968041648764334120152916974301984994877563471923223427621746610870720919092619783661359691509265956772776888553983416543800413692028850930719209047632633394765996776762555910790376022321001708052240957683722274749305154325558390518955404573921601671388315206062656032388378489525507136249083299965971371532645059338384061474708493527837254336649220272850230082988870205753959454810537540379113157321406630116842333344104676701284537013669626145447278214893407462140341412135171211402291761921618136803355092374597012581856214652355765981747186974573955967063194335457512733626261165861390482464488680864019808107507152046341481668326188108434270880444912622296317261662172275140070489630414630215757888030693209176452932916787346054329993942092845597905797133038949737944459460704664322991200736436816121821502992849191689664522968478064937154969440398282702525875323524019959216850864795110806386124132039263244605543906131149680643006489379152547182152753295851896779611948769059891523125122746117776991006788911854852052410702319504537567698107143823445111804549145181505981373399336354686814220529855668844635419965712553145321752879345846736211443156509866105463103593254777706063485056047359521508133077357600290735094256856396536390321283413211650260799697743911240538290269645488654353650914632847600709476431976656426328670154190337584434721047542595677152697714863038616892261417925638136316980137028368818788139926093938660097456418780425171293330297632267220717081179178911505318945038823290845677696008432346012416351015025602633385014817289272557700640049732813217891739395476131397581139682044227914085040543229979918652262656890629522874692764918335636881466864973189644875409489412552198501271062259662981036257735858945247080875386961085543956021031409491219698664845081245124898139187244014769787504943236420309139089707279233593466183026698481863292136721550761304060916305256360428681399546109533052947025589005163311593465199955440259275404149384233462173721901638721247693461260941758106702828418327441606784112906160428419461393679668633215712015594949273006392117793896833363242540197729829402575572976051618198789876250175713147655105488577589329543028508680162300687053799011588477619456099650502608448794982734408806890620995404657550380560835399465895951680094713988280377846975166593548490554670577984472411665584995303572403247723863805881143235005527967342455175067132362223755048794061836328646197597930046380552300650423024310889861421614667840267529192502759128772452558871760338807686916028227794408832377645789705257279770107171909623359060728601051030418776767596258776791207740750802283235206871366566669929913978207757248101671897550118328605184053777126268910417229974828459244207808312209146886207653564204512713175801470503221393314276760057390673997415401616800356158598238530844362647061212264618238311127798191354919724134507134156217844358524121657177274689209744505011917838156736805197051090701528076633151112051737206629911860421448176470163277756815993555297977821318801846483761271434475015364923904824772776720550149405902405561430553152932657522406584417347841454526199832694847163821355546221300173010938377389342996075406452526591756057941624716858058670072392283157401431434430253790346771862029262000015723727636929621313411698033696039510070910066804820811550864895678443010987489488231408815651701684298367854138688096558896350740925563672018917849606017643951318388846826230294992519563670715566224692709122186895713354746141850023222978431722015220353840785256296332894405168443977069616145743193997640181538475879943745817330250637218731781138065995822905381674305653953225281169772782518786673655322655639171878152172512926663871176148713819907160089030524816891508626074722101679717864065484674192203133840273880489075216807244422388341306039016607061998939648124053565548981345100068036332397938678813079977048483156987870513710101317829996347600470873236518607493607701421007694494186778954964223349105980174610681209225614056728999319502210489575496320929235163649035355023411458538340788220864033440350842305266993089078879319742079532397625798854100730056173206381622876109158833079664447022974071733508657600194903793166808262329081436589022143671831817969509513614325148543051224488508184402647850131516101331786289959225647328988487569035923470542069243125099722056892536980123199799044706282388955357139265867400233977781442977342999591964510901781730202712972951089376693491853273729951300826558074862646717220553699918913157880507409310370300725032511996758533635018663804239799164827996807305404826091201121834494952917885144614679397420852982936792485293401169828648314004539630113170514058546191208647422724210238020844501486594117263225766209872567604188152054107234179420650684327966160457069323364643472529601416895757311506234171389737243824460195547633489204150377455764792944139086609043382155245435588527396301770747077841610174468309370728312873433090420388043484119944429271819467526280988052592431926406565172971215110683369197901929104912616665520763015921261350134755131161490654892801167018273025259446274309735608056645549960833782456760254196882680435068274004364334530202848202296501976349418333141573051903435681161635496441130910515114363026606635138081306057662728664935924141623096720521895195655312117690494746001306894948819754181964156133292668240134774033685591443575284329768126780921044550236381893994818435365805081209376260556638117356320362277926063782372444867017386789495179796844963357080458839953876529487028118771123198179981934692433337722799812149832009629097451443546404646529380721188612576630841317158808019250833645538191340884238188647215488286036351284533251072653751266250553789728312293624726475445260333882803010406930564429584867110797266647668299235172505562633861966386095988444842274303172732599075804410647462622206022333589896740474357493842201695405489135477084030363482767455599488339039837573670913174839624230792123221413867289698301072886393271636838984021447314362485139403673984322619440692251144379876413892055362543365880751163740255762488323194431703508353146268518399396774874580976999349365554453320638552434023643555933624412959791027860470895937186577160915633800186305775680104250135763704329843694015137538563696726693851477480326787518439969893112746475876326793158803646442339673542505341568819724491839781164238584325586172921105597508542694382621692817127453630650486922312355537493885978289921877399200641369248039273457381984745365386906344253768445168291524852931475426911982093823796237053766930532481062621395584294565717105648843695790925941928879843053503419953093271968757463608335193316478767980918115949711746738209746141034076485854239726453677467309974072531040554650214589497818165571612223962710947366775597133598534720532049968088836524064651706343393685601124623654139397534534206675242366015573482414327700985743466623261738920750258423869887441848152937332356952172768737617233105065142876046954149095769668188503422023232553584643585008283257990908025811779264604742249495686413921735931017000879783217697108140094509305605768819096922067355918626407618976494643578807981158530761308742203586342725428048654463850947609159453574267939495099097248553548960160819374606528031951660595730832789557077759177571228210942723270419146967511369188290423196770290806820712493192854869934783389357241172237555656780476175100826815405968348870446006590951859585618774776813485656105674974889154401595468326735802428483313549718689342818676304791936582708926878806010629802155390547580231603919532486128996200403547538340695805773859555488750214358298219380664789787639691819313795615361693675922955184856739511791027022766718717413773907999322024892362934573292342746192715512319257243031039469918875277467080864021488652889156962123279267769879352352642617870568105131640686088202902198054576116231583523993140709331851062153317167963826548719345540500607072577481747355569712675412184477697063894331251446473318963960584965416798926026633234006272037305146707865451347603266347034000104024277819410156832749339576082533204320498294863328509315282468086062562861149774083858775143595408202978995891288441297189791599613666486908970884176871142181660661965387944847381455537141453260820556355903739594484670207389647394297256722585531760335728981934580657192324201301009778969850537227660158280627693707698084485429475087418002985319283113767888493406742150709892341294525619860739260245298514947063507310127062120790409298654961871812157396077538933254488265056641951956907512810339588190530469302286554326783382798038494086394288615089461596489827260817857295472005178952300475773851859815364398544808921520082512166460345560841436903907547144779948134796864218050666930656676684082636045207173785120709330736449672541992373750784379911110576192286513187123976096849857614731269686300387514783833790990225124313428178874344619734350167359433454976808550390465055415358807899435852654888192554188954257421658990153074084155721953717154995642016041556202651074193054943719551679512885365068947756298187164818834090200042541514336637819810634530480345675611818478945147302158674938474667553266796579888710991532635583158922221989120945258293001577148556962898880233108183275907068404799316146468006832262200397054647667964290032316294941295887851868277924020036219647745871905183914031870535124120312067879255667552438521318342022046320528814198781633906941353689557434846418390652486154184744597190496009233844200317906188255387049208273489228226859382854831420576664746646776173099649221621265355350559670144865011731322519098490389939589817585026509704233635884010200431837482643843629257847314599487102388648664829291838758578275692591192837879063647287595435804222460232918779802837664694249846568904687194180238951701310084816674033469218333953155124536473210810247838436591200749431731840493617582370876899233154680582066773685152624307194106219160770064202259515336181179831429015513404907054748324779333949636542600095121011828231666998317463053817560243773775364700471696250053896744691533764345384463985640713006668136357741004566722394719323654325853176637186266422245411306669036867243366152113524942317259809679598819693356225599373595557607154419298133083574356023020066872707000072947556936096194453838169404981293133684970547254761737910902415967988760097411684338295361830911773290261327043990500896200318518193519313874647173221674249600757636517021739362345898769447977513886483492840957370440225298985601730943958449203527988399602914126056897928548261072879428404856722661276951600303156813895250497683554306013484544439584218192427279865562303059442713232063731632748536623054061358642572068647907909652084758446160337817360701946906680609789828348160528149648858515433626970559358519217576195229434319098083556067316466824742254038119133587160061689903152223586313192783978146024731503954752357081984662475340785660482236173443169238666843364058992316061533616372350304674391520125601858744920518160313895858536456063519942353528328936120841793854874243294741192416329211602229285819485180573832900344826712065857884494273167263333157517548356222913293973332476218586065543415755901319454377476363197489475803389772713148554623797113342630327927533601513466643823258582540858933367195401975662666054624773878763902296272879117942365336584416669064055308615077451754022100259078228430894832625159898514957460327880796829461124979423799223183504832462693232036547418065082199517213921942102281061303422231642025533144598814314124447197590110636817931855994099642975455985590491852130596206001115805957856334591077717463050712846481589427368741470252531623387760271911525732904399628133512536469091596594535825435611810105008709959023420753134579819891461105034011494848674218718000197462748709225683664843779418144101912632330085754183335942678389276224667123081610490613127735071660020019727713139089337576639448142702368258785058632900932312286890645175386934875090140514111807391132137741743062710772530689696505810328479745534484440528783164048629138551135837806572657128564730540661087134707985419164008695224961824981877418754192530919332040855380986114988606176437938764899404180809780652417262855358735615957972543049211484528042080911438684086197833590130685407150459722380297468141653717461563421594975673884703060824340694115659110380682582286785294916733083402127867399073784438356901042171657445299813399151138427103481666528658965250887890604909158927007249871622063630556282154105082987124870526651546028177191664859620520349169204655672934121135195478400959625754739079931587145120215537224308959961185525447588751169308381291718694701092424795456013454414362077253130947824046816397942462149087255080567436460905832473494345252771008594821788786756199337494689313554531705450478678917739623617183570774998463960695364608867491722464212730062011727303771087232550409632693487216099923994576285911451736543730381552430617257657846472980735639281894136460936314921683843825879579930425724359498649178391801828837196121511014423427774990749421579904673930432206442520113682178541455900080237742739047377789477345806200110928478752540892820626566891745863902549748293465881297398294780299133120284041919939055970723359469400622814668360321082424897106372006498960168800958732550485827504707629090820083424055738163098356480553871371137747283009257956740575825034915713211221423985836087201950232506696014135861990561788874843782614378895672965252510816456080242080473565751434360764224718222769648101417806233266536698781306935754234248607884656242783275140325792713792981148300512188781289200526849359225154602294979728141838334860714028582543895144636227726368310006716541349387653999728597156848251598069525183564206170375667674062951589216250492884556115324041357337697166815855662722766914881909195270746486485357373333475516148814301473820966525853690713817046945497916471287057164857164116363981310293805850578053978116307139651555170667439318289996775295040378261070491021764551324812410712845445049878625598981977853859179633497506921653309517142699243565398871113089768479247158916537735928278662889743701546413341420300040002030417589257654913547154110617147520495584246643678285612848893403557424323146672788973594495146755303925838220596666236826404898194467442662705141763871891770748427988023938804199948423169235227123867500521816921429457068761691670461211701652994303812031997319940482866532221450262504023773764812902375068372999679058481450816063458439952185309633798839645624280432086619159809028791106024400948723157122400451481144930966026294548016002668925633697971692275745288349539973253359814320851218760700515307061519050460104668468932561878328557523244350633936215436301819342671004362710035565718961153687254871134400337249520827480122811798809682887069644961663014761840996060762789288452834371425208438711678466873746629624824674614966653082557747391348563912606048675535443534307272219825237709610100634206885447808950098688526285776252404115155652079390487769802639709846850142359608587872409585976408735085860428117062862564394039407329540791012422346004488351300610723073548334287087870720635256663578129409056359479507759549177452670205435602372753571644605506419605676259537860659127342118251975061616892811952564707881744613032274818131839186543487118229166374375367962538417443259941469229301384729930209106949164204610566588596529691128956487658386519387657262827666803054280822071021984454857159050568240700343270535563972794262217051103252027580264579726977523237574294791681545590554537903009413832977245210297422022017267297164894496187875331392560982517754323281285776692991336386124712360540693781939425515181607259840675169766682297705922735042665083060658612389473865892591747792290430791417079547314024397769020502347600963648879432694369175180564876339754219949224794415896815033611729264662451161295253162795396205310354300532967848107005761685308798294153449927475455375313616127752160047223482439908201951413380913899489256937622142423110017382356781008367657425131243496082988647118238955778795331152902763329617631158464647091677115688501215256004486716758859913591969788943955011660693133465757084998540181690430578012650518711132103064275746076829497871778102863083105063234706061902974589240286019082668997677644428581242317273140384033089592098519150021870879924207918020918290899491386778400476091179693104322956251536660373092091592940710716312102011289834874885606272657386802526918807095792545135779967586264890424371108844686724563296064020536887002583659593825453139541556497368655122118658138830768349266566040456038380221369597959383471579170465594500739603671917799405518223195368111643792981570307086778223574835678645491558005223216821690176818978685549694927493035635703051966860576494528711201693221359531372806673315537708741606991954735762860034482975977783191329893360480115715162055098157263408850615910422322332533533126702909276319203507751925608318060509967605650022551925146144141863317381178579007656879098199297672746690622968171286891809082084497454980668205286856227223497262578397377754304908689927036258387135805530911761257910119045622270161673392376589306168249303721361630557280090335997224900850978177648633034899159915442845975021983243337008412845479737267518327865207525009238376816356839241847536531728943836331502700523508008097978576783049373732516859543032063968326859452969467828407945840624659252304711108006377373324870532455652073562388257624956633886860884987906310015219348846189737242122686269668603873134950819389073827905396997459910443140143417828313103495748933331666701684431686799317099214676389962905865240158990487367583995023294851711075960102453398358826180310218670549505981013948312835287487369688617811724100127635949946246826203367738998629459239984384788996135892842238268444209274648314782058506830531833235538059987566954330902761014277801373536284645058379058709130277516332934202230153370941644475403261532610580512838306747824764666056013611446196788239973820334034147089616361859301355678149696613099883331655703356449777604767852938619594628116825591843856464549279328098938487098795118938320768589039815857295328848828997677683068893759532228401499423042935905755835298188446192594405389950877733987017462160726720825521029247235480435497709270649356698693493575126706479541133248792432762547458869960197059686777217248860800643090029039675932266063687575948851165397297043177011567159626811783387501384403213969736576917184759225771714230106894407922190831400037505800614978620442576727919131226619044034146615085954588613536196511913800641132182559156120840175145913190188852801349664295008476544318793207452304411887436531066241160950710021143575124404896165924798242179746156959180317229397929962786632201691462639337114327495933310708634506410558004990033575666068211079540458037667976508286249896890393339321407656028212412839496131161888950759123943937579087321747697140766154233974801116970577324745837461113534317697051202277614027915997059695346785979026770299986786800280775947597853392694726746182558264048250311333921672302834663712504936737144924568628413035012513261932239475074563381122009191415537013900788859623864714689571822844871341220745791241730360046579376398237749625580132914650398262260171188954212535373903838019154338208086684434513227503583337137379615066997243355867997686642911707244719200707957040672452715736411292365410062140526790519333055176929844201228223529714442388475514476636722884650164144149013414234735257889826559957591198691448232810275837537339871644296072202054029365032043304780620609226841851485194902535886149267537674795159440048074208703831518911941499848827138988608943609687735818319305971772320310614155572235127899361882849750627526481547649557154069012603000830205008173473000002931172289190357856358764173948581913423064740187506308306050095532010742342303050022322004057389668707728399669055221947252746912474002536589649795293833931883921944633964485423693179891723227729191706037995909447296162901671298556361263945787307087435144431970293963703113023013854563381599306637196454994952095903194292335854150131285200548435161571217753332915517756050555258799511512420138511563372714970453368443539649739416930634195103973798096055329401255715688842221605753300169745524906634761375227197294350284481512749558778999362242152131674966283031467386443123215923094833378011478079248440080961456382178886678564230537411108040935095279991776936847789416892428644572898568924544633226602797301989383398360535720939600996372746081793006644778242235002954488372625199148413242479971553229658003469350425800156248628944339602986311410013772417315319603320058419391049532637358561120807455943615612831551108452671101530195368935723250823741196405908649862411428320690897220135760786197096433913863463438233437205211181666880201629943521165963816515027757445382297800396609260588618194551401130025163278706352703270479869731492372060031396906975587188246976926523412688640620519365858809616717166022613390115124748421086240665771240130569715265287874547417326633434746204529511681672662027290533853297682470683457231333838258067406392007681828396036207788436344089847537551078711229642384601469590089990264859155847765573239597568046968377722255671240738064583797154354957867034309657069068898125858229456849357270427520631601421223393270246939038881884063487396313191355860912913841372788018477416618871001516499907120291861943437740897877533561633339503513597337320361527219472103534624504245225353556139645823976875735137875763560746940658284383148527546319559672864379032947272984667951093075220651531486804946873889864385915949861534834143374083078827182605697208951874260045459546544994486400236106095461054654210903879769894820585826877123003328228700919280099873405248304800545771689873152270448235802399310784637621454383546375378632357598629425629420735868810279274112607117770908116471349274834963500835436126423050070457823226241905158501443565897312071677815422131739337735772146644054782569662090757853606343389696324838921590761535968329927820715384009781679210432312800967718783856385750185851611099651751573251358813807889877958193182090019442613770142016044151470386108394454069272175901946667040001953454936409524092592478740861981101125658694125948110634001349719427042058099035602632951869149363608937281015902684559364642977100380741135011652405082409545283433521815811991390254043041583581417868196092302460603354669840039747992316224035861671129114427680085179918395345546796190773181955984192631659766369520340844850154822662948127387720521381428409528900384663554731283226255421098360741735698377042744917388963847771023524059654631942315917556970823022921735237388717276148528297196476449050121352929141592934651885248147815335639363641415066902453921471444707196614654781306301301332992520971762094002934833145457961630399224958883088871484552818212951631690725379144920525209645836012267690716027705164039959172811021636618263855151671747021659021223991981979475045798060005819489336607810334169370312751228260146674273225173849810926860219838942036463466874876121061893534274455745015987066656312313673733537972103447030792008769183829178993184435696847228947481410754336808976684780084340321119435034946602388319436457440832825984881022296341993826668721897174872470256246585679508465946704016459152476085423070163932715882349668168929815717216345675831532983305965990544741997077299038893917246051932868378948685708153391347820995233139312252551110709204241990511478381429332851888008361457922222078305067476367589407925714436422169651045839228223945194279358081826719331121921780105681199283435591413234405237333906235385620191626140762100250001803089048558091444660102677672772832398257316894628904959974043111364213762202734155534815818770768877696935054405507288812626586255998021755141807473644521162359867776108009496993976153057666791161878185639531948703644061842572331210847748965138006406905184194978771479989096204821491134140002331919364128570912857763457636808964805675423641651448076924828927646169236670818471993561601537894316651513745735549995473183356167501789159966698552100710966348668839899594452117442760545778609132122695989962367012888417428847110934160748550080726457538561125487011014834205405663507793514316080715142181292003527770361278306750545889464224103456923890652372572431367412971226972214376534547974169036734887344467379721146420508539835239188013229650149086475919019821275200294259879948460688280635142224518865673687512277842338971041562318285491744262213565385499365102372236961970793902498496317183838516703284224303365407480860475408316555078459041093453005279967249510047548589366415283949347148114070684753081720785280931966843020856498230241500452290730968555615526070209814294342571889887404728637269985733350391856401262299001210714296793661994580459938081815334814059188955339032688582129826150828835462007007785348307786000603708641434890593520233140847787779616660023793115252566030764516237195123404867046109320944178577693520533118524768432410590636630762288901877962330738559578497225560130794147498044202676380492082578837670240407708025957111974237622311244497218304811001153819028300415813331514898476756944323541914877640578543700201999046498827086275193134580148578394750673922685450379388697556136552105834601179715867887401447992106192282617618074740559674792249984793789157912084979858542186610280249806487338677341929878536146492107729904844449310134666808686020287628528562414937553957041935837019339624376530921026384875364195861239588611225956043813835140360513448911338454990249814643967000850430787726562105218735467448819046325579449727103781167568268037384839701594664468007386545148780216479635147484220058949192827702093502450152733861510290263332808604826882116244577126022422630437276870097799913473593611216322801571109434847900307963020262359347063341404817556295350650652411012319989787588737459141550500890958972109677725040091291057005469889749387536182747612626380297180379763014430070305547551678792079840349472603737627840502498092794205453281172305841955078597601341902833842841040590078947100245769562084185608314842817653768762171089133879376787088893914573284754638718120475187242016632547792116238980746610053507864131479830557181835611749529035325602786627719217418512738919487261437447702988664634227938593875908481621618156942566440728739871599798693385572817184775209659959505282301429715005504491209022410211736950609354246768308877975909055678761586482796482694999625726644069198406607908420111214838102365576925875359977589974575203475107145156887678108891623480743740457984373621428207999700350688109595578995919889748850100377642645760349458600818860973049074243638125103524861617631277899332879566835636621062846461729942134381865758136860364352909309998318073299760140964911567240444714554948831037912385443524319190188365421371195661279906342570589640886857672370394634100557054296861708641542227238831138473969344627930400347368663258569009013037456742739162635604929526896600285722924332830775790249256932812746418536814906358375300399216126545541854563228558602830294934862896077371244699685820131265413468958949223007681333051242318416211059421828025112753660227002554242680484679415106582477237362224608673064378695637803394642571067451061984228071977392543936795011367393880841820668073032928924862550666217601157271977002166039870693143381592627244225447282021703698080835863838424589964940238034096627784290619480969984252949586372209092823313101386976159627664650899630771039530747292182050224323124244966780238735348959855860269243871126372723741986761133971124643857829498409810015330818941268254253665748660336965897843572544220760012311653698024450889940028927222075855074839643101768433408008424691241445995068556299133516681248039459146507649369298862554844861678554036786156830968534317569274119870741423486281582489169527758577710006893419350778783232271851457540437430881336861131549298388699926418207840712668648230648720288926957022563057929736628538531028458994618257423927618533156819244018717147931650878932392484601903458979905863131180122949651823545451554705931776106324666840095670426831619673204015040460199159421485778041896532152760430242003997234776788916241702207882095216548788770704950718150821076359672141342942804674614899769721283566320034197155771867816650693768023673452631005187000108406219712957628983919047051779241625620910635298494798919527237826985840070077891920432706894526328545881191841733897128598124087428264566771361421914328051184053165505322045261199135762842999578081614311058668351236257017209040958184371872452543524585816076502350558557187089253840157918975979815282343671169916795361249511076236964472312964444427230496573974088952334782654250641942391163833110296416551225860331343318994370413632995988753156496551206409660294741915375797210269257638600784965847229941112968263210682440552714608896634728355658549970222713563532161452868867476397829967915414976112423299994256474432743111889700182226256856240331937009555669248870744549575495273402412157781090351212532920042374920449869651476137904571171156726410085182299335427722599020714204881227702202685987790190621465898111480355911996198878675745267255481172489467941771207552102911409254202373113061571802374488146656343870997952008106483036427803884596067799549977222111592812008577437254298032701885064408207170261706273086191548477394921431690451010343758252695793645334186129533235489835977284493293739944501486684487054217928060442918718655684935034877772395500680449016885937712131151901908658858545942731562176072192876420308951463292634055125638689809107838003842990189857702675085535673742833422721424068215823929988287122758097472635810760531346735057760632179241621961017606330768010469721693161142607534195224997328832784968657758238125170498299639227737385740588945314008843818015840069602776530902755018555575920342788742810619443860270547266491531895488839095938059981474345445650101879942634869441844463455317741873155800182579198433316107498770737710073249200769993823356089416677544114084968848231793097986505206743754606669009904197937483163594611412694855846265161803217479301588983171806639493322018189882917493858896211819690657414173572603600265780103420625783182782263968437606026525110024222086713725664958331282214072609184744761166057520454188558754486042108642112987401221412097185572169353443243071785028196430287842052803512326734341707732298628740279459460793911252624665915783130521129989693055429180676968996065257833107667834629098912371979372802135996398970358794795123762908889324059692162414149420432289714539277078832761450553652842381327081194589457186746187361903936254946661962422353597720970787265440950285573667816653701102181533303346204677625603503031520320072091315294538470670635022206911907757771485884398893865931552085826656207652144007296436595861665089648208595039519314749030050178895601877194848190733345332321155757910456745461146145864442993200979222454761150051227137697788659763109687767113891545029706848068159250621345804153623802765818527876372782469066662352997388597539519752996274906498486221532984901312089041709753487819000985758878361176371413218978808318784413862634132641791179810306266640289928831069565530260973859165713255581154106758450578575311902129727974895963208532536138663218738363169946746051274749820463462492810967609796778958534353468765738005598050529942179078381191006927788892026531650949600211823848845151191318588405774239287538550623107988899905164420545307236439202422880656726602664666660147500057128593186866921613948161117398938459174250201127372813574459396609826661486957394486084038787967427240203195711388181015047241816313900252408742096589817331176303368440020870432172843969907559815854275628768729265811923615434413397489794660832126924541027873092148858993432237454077762347889464394525843904077735303652801188252172520652293668545312785291856043318109218074002632711048588943260278753147693460443553219286382117069498626947384498921089889453067146592172941581318021718508846199735634386381210362573577436833273205720283042329608647417675105184670365402549654886967479359295100901623193867169256458555306252265991734536416422455512492284651013838860790413290690575069640901280370768504619119326972114159008369084000908876435970619261726788928292213334687600961505089205538637499855957371035914979758035418609522869925947169865246375310454576777199622662898850620634333827678121756218722078255314250335324472699473738826631074534558484634698134960921822781061828060298372902728374399357795519353929228486860913791353318177024869403345036876360782860534962712451372156194022935300464708118629176848234745012410766273446911928796233893064579603992858387490960267605042617610733356478948727983450107714038797663889181988714229464242603838836259302511905417189423962633865965419520918381475186643605775940309692527076159370162959400218817040912986887013022305028182054024188667551103093443073357283257406619172200106474364462150921182119054068723642735071961081544375861548984504325110890556641508421513615490923829779884276797928827766206893199005612908468780152127416268566110186605166179516771858487435716046005145030385949030133726494123710777090878513363034842842835446299106472542404235863046004330799118770821547082704820572300506530717038423631682182776412171775334714838736723520132334785436946662977209435290304718141161788977333375497465978328697341610904698837564010940500956847906564433906303324305222327835109253143224980116354355315957468479252924820603587419234768575052591090255862943682963838284575103156825266052273216399597347637279668276204904370561490689707835069784922000334093269226436816331437121840228213892094380965433094859111979587793952032087660861401781136896602110752158254434725282534499979314924872081634086238259396501232973847395478136626352789636272005757941498363347389452804210692742801081338759162124094556677465293013063408566102957316587402476124358788676932114825705187524410251785835080208176279522416279222398732377546597915785940187494367915623863425733727222718982829826765869535565856084068841261505821802517087348283328125931503709376331601054798517583528485837312737844905661634079467898268937871605341379613848760888565531204242320031482555815804699606020991135658181941308116235939863484230573532755425912038213788594022108623382321541750766009013190068608804131125241499033121770232345876346703764470026981552675016298806815849632538561854257384708257175642677819982475301203525351275565626171223761137618205501320652685713988982446521401653772237543032660381301660758240883627090803524567508839409260492109404011370606781027959424576771293941945937195329792786514583308562938267960082151521762204668528440628136037871530103428359451420699049866619866670036750252147023721055534575990941266717336283387988551166318177507567933257747695631361021398155541514595832103457227073078994843164624824371691332319951805599851587114405011271124535470456941631604303985824829846281316887697304837707284648364960769625870358564650379070525121642569564390436475428170964819040308188141317855512496197696944434379501868644066470585885148193767629602212828040511290078673152322844817556048860506702846668632634293539481452654439763741944252491526260818429023162578591918057591228654295371642066944266248531944104101985557855667792791227650417121718258517566319637659236636498142011018037317743283925184515661376818090066539062985687821488830472953530846863857227646520730734407654502592421393888612272008102896527565511188812669833322816594224533294800735643065360861110249545761374114696494981628971092871878225248186989699784441559016275806740066337285976055143730919477291293685599765299160726453982847750567505491652123955569917824950157315926140747527493423526002294334913872527214504858493738268064148344949747658748652283662666401855750937875484038611219057702826038606892623409953100031175639783676172173734558768112148738402445504274739659869896350695022114977535736741191635231367856365387538254803678370473085782802065742638447292681651276624793251405886126056704520981201714019858925549470605121661288669165989987903685756748531934838512708191755629569899223624354728375427815341112625393703851652114751803353755986628274809966651114670393055591438612834775359686278482645466607033013097481432258792929201929062301292326592563880848925573291811654575824280262085842194224852083317928516314600175852763350207806676573364678732112068617564754490710606967417593498948350863526835483460126010092397523316033044470386412298663113593849840342087404542839938686228191480148965454268276130674304742988253711405467772699895668084678324910101859542741543738065661072509189735139938779997850055080386619610281682635134206387972044817822166793916684138327795041626942254134190280494236084322234308941586416016527105031371655346063040185815560330680501858073556469553955805336437135988480693436434827455574847551710934505979968397168134923066251558425726177842253582494201642795416252714315162696607535850369668904197233519601652544537998737926573503544100044516929403262004101150784262571708738258401926491096076790206150061493980012793564493860184455157085934954183820962648545328461801202442711932302902073694596375768764007579636518599508085854128999535899208843615357980644911698038112352667918707013548935469444741899690836813632120424016804672700292243289086612366528596892950240205081632216758210026733551935754567616055732273621300154929625632017535111762113999253641586151103399271910636321184156539254715992951955143435403898095686955843833052941969753598782384217486020926115211473047070950019134750241996220604914733519996497020221599680358064005647263717044158350036874932473635003436544864331756994430024459349128275716792246954666755586447870905196888661906174134609442170147472042349846111894893775620721450133690807891444400126685723107780059440145684110487020332640999934625199659652666104106696395482717260949981414169579849094103050534554339930604421559606585583024129368140429628766992019980369657341915266097056446366304149813143910210417066296063886677244774335002879233219608786868294973092926033383355881722272887906048483300568946185685183138234638671279057529696513059822609056308104669319867459482881490404561092251556917462063582082665389929704546341619688128518338480616364481291189588967602709651232758644936774630343645219322545878327666680507029756815753843400625608977057353797232329973517282968538555411663718468824080599015282525505971391073597745425584036483494491598682865443284467967690706279494764776233293028200910471670709630097078804479011550802027202224015412220691762717189890776776021592078751857777949206400839577286718627999886787636375871291765065624442402266468074341711043173266769744585076559610476599562783832460182591723138293133860969621232686877590803964182702440334307972675146358217752771213059125933093271057716978448539472715645414634124233128232181172554724728492203396917799200396822234741133766128446037254961321314162097926780768964261462527773062564576281048858438393300985915250511996254428286346617498647558467624630319646346555092119755219700684748047986736301243172895169383919620592973270479361648642175683391972468221409913985016680009900373046203994152189286652589830444889151718651095155574912684848851483245458390502511606492057977905014789884898259032134154622117122256562452928871659390994780697763671921845812408959630266038454047324312766553090887907603888222025664875424479661736154838014030692673448335838011822823174091593464721058183060050693129909689910411138514131781050071026700637185319104140634123065385061453381583795497291939513367302636038032992873688800425294484660518141816715411981946008627652510113030503759846416882582959512715226584202745234992803661359725284567726973551968510598136614058666497573750299516497478193437850280926458489869116209688909970952510160776454493683558959737711949091227652085752856774534345095158155198331786939532565511696131125699657740571542182696697764782213955700063351244553794614590944173744898682054333308500087662651591836551713073792738687503984160999062539467316223277509668296841467220155551113057141147799539065240066651297061006731603060478154266249190848808618011802736546866656225655683325808152393615559395503288778604767670330717586096952474852909916407555669248555309081020312856356001604938672931124963198404488108034763712379813742202449877104137826222023646964862862199197721887461634998396737383533041667964172110339976299673214427778721321281919497870134039896025187799152442581591443628964666795989657504947552257482531367377052007752468632141145640206771612353493746466289751402835856680454167125282905043158689580507303573391695601588813652619524518692706240155254873768426174938763427551976405121748149329922214294508978204215699827268907474368763287948703384448040451198960272765138018430790000988891732839797512956384556167323129965248066073772891025175120738461123989517651499174126414485064695174507896694841333025500215887213310337182202315647619078570996849546969733701219384774851759134432564292954363749218787558416784682819155857036397755938888563549594738506894267174073654380451973196507081583668464462572476748742850033095445073331070855936423358945833917498034242651692503895493896863772581146917331526626300466581955632306979064802308418489430767228291907385337027075723559764018610570076031815009267950135197720409745742123146049276232614930881507385846904484571864171981242908191004607490811444565067916055535584484530652315048092408125303326272604845683980245914933350039547119939065588800903229625714661507329844632682631973698912355681182302556867318707858494025421785460949913699856760129459775898797505245385805673053316412335666388749512762776041855916463156896054909598189732394170139408875611745627882301168979845149748761677506573794263159423337769301988144758494549477964911669315527621943998254799833197297097720800071521656064412138751434541322555081238249805002152708538366727544323418914242672950658798295662811165542215960500028446135222663121830897690175709238588812717592274690631842911545049690307497798907726859445107304708778129815401860464430578029017397218571367634573692166849222036892561952986130816361676560909529182575995265861088192980259241435611311334051515523972861847671877484275592954482253419640251362560458132770409583366053754342598262804984856294825340729913145381865478045771852896250162715377584970348420608080235852226746923365016084895656091618223584728192835680348473493478516521479186178306824092005472900797424453157834843269145470049173591934571527389792917640740396575719216961221385378057957579100191605032272571036344811643749528849880334791649324730735795005954350858753363514800566526645343193977538224753875374837139003134639442822856093369510075393872967640516084937126689560794800879044796326431875258094719863985554561012586550934587056168843760050720049561054733433502305501747683128805280044777977795014305815356995382668459397386192938939686447224488450475762165211166238315918616507762690996416221590668634519221645545420198130955446058766298674564692467773369339786212210602487615417292368695722804053518239930030289139681146768766755400942872738417842059587147744748065342828858615493422888247566194005031251747410112397590996956788633788053946942657657317912777679658621590014370002014111733472733189841534161459939051582744129021976754767347170733039135569635430360724934511924228111457927310372791365752580698983079032497200935644949554631567360840020748906373206980918221002829646444403145629274106724657444396001504815457280515975381784630926850667950991447861276831656443726640083926820465015854443771209413181849188263321508753404844579682311983583813981178985807328671076953856937411298646887675421532677325085700934327567461770477601377986024680493355940646316187909799723517696409176811868579590186674777874223126806633128219340290893390319000045039588405825991949803770588366667894278905327578818297916945408901434816931480790956426954624133024853808973226045865566984617988880441419759169078210524228917451452879039642959931475547671459048298729519974254269501570273207275544840977632986234292621031945811833518902889194745436560087713137493358785681112139433652892919728673308637506167185707812769133325180987498244260741248576826900287994866246794066800997759648158802819074011989681053661279815006916326650028756762154022434059110370160415072463813919696041113158040816704826214176746182627244142995834378284608986149216198831990307250273990687022104986421624236477317984480601883833213559066224889348443266662684301607920672046363329359538250628334390538876855206281804771427318947901179071094066268675239136240577632600559180727014301895187914064585651202696243564083907675617737592056971635564477899788090322598142074116184248796449905518230326347893951509219823148638603160766660975749513196190583296415990765613439293328801760347174594131202383835989236848068373336205000767958651759374679614933914709061213707742061530178233893793263746819665344337879457721454596679526530365205005811717020420791680534491109611573182433340050090486384101474052004643963444685614967318786578397363425723979263241393086265775089644060518102997262755510527369998020184276107548399369234194038863729802598906311771162915329509476123737014032528693796661557320130578528091356274163174566593793300352672990902895186147255765423654050659206113777547854387232572099609848052096532744457262676262494766481553178129641177831272734614226032324106050457146861280737645931290914915569520677147913331938764816788757345066618670499668482641604253572812484915146620157428199410572662413391485288428353731934817356487371063178556916098234730821888691577340546562477634248048859119259391590251994843864221042395586981664229711588720972516493772233949675523101655396051862529357144640152860990587300010536338849981578361924670394269348092909230468065967600003657531919823857526682989298823561142154814099227510962218863333155820930319604103231967856907016664938154578033448198216590485692866144840641368493969556040194146208757668360010779028013515872208975990159346331789089819686283154276570654574567514132344912804039256371816443139666962498915490277110818451631000545044878791018950278408234574846144742627870523214446147007408358085534831888962932782612585963058882512020709436595701197453001663195174198088591622621169157447126616697725671281618439208768111070709997563850334277371096784739072484874800025478282501004256349040629539343623828494583287372410636223904025804573496351205153343396302818188360975735264448462189138252526002951573841490923942203988241901593316472946372788292263242493355499262891516232273576694686755449533799995618035753854306185180332740729733684681288135129459993231880443009567412727616967968653038843931200027557437100156839120839216477723624229347644868634986106418710052439168021538131212574673004155224874545820690259605832667545807458233726910047631094068583288296839129705725361076630389432874004085409830456342144834465957440196004276863206890229393654172197460793553084221477099395659026669083805418220670405323840153742842937579014635719183604353368676321432566292020452187229697838668837554253172611610613171552557527282709915016919049559210558530007389566195269974311567286970803839149038898957267523868624171580645379968843076329345986423817533012987695965103173873521409636419492457088650980922641612550172592638975559171286303948196340840898835259475450671782049023159829842704462862469172092396001973942973724423034409760181474149184894593814103539531550520686988642315517221788401698058977258813670434122636120616961020822998665122519875812164670797973301242385581756810127474494980794433040120226964933030159466766260979451829680207961656289112318706977458211592935365257653810319991153188265311813508555739224929827435474965139431031921317544335059264002405834456814446923197623286364840859136874953807810936276046806373902925424854506228377380130139207833203927885840335683903448188851915951432567280726908609564745087233495577494366898888110974093371174236395710201000746846134242451996252173364807288635720541071467685972796232709010183103349185494606016483875081359780256998729255628050260772829355647648518372326354584719253966856978143466171259885621368203614808058284815435498343203340428891357907462167226558211355396737597792253182525516335902789909534581634275526029025772628689025353245122788246760810902983901695355129009401712250674116011073836230696604953086441802595528279348666283654554209454161851097935451759824630212434907934876458171713709600182874748243609963324689903097275877405861930786485798358905318050070330755528546748245711227632578408622922971624194498905231623713150537097554792992506007359914168685772893422593364754976800276760937966347733816848337609738313116128222676553347839967770963172475881953139731193886324145968172267770166050237191234712469081418517452439594241311612805902801533930980443478530812674639545987833328267912257706605809787763658716654301333110745016010729644447962686951680582633207436184230511226798582029659750125323262462024425015816510617847674020365180629536520548527923135196726433528952409745737477815060303977416197713219544064031092254151584231937848376816388314375054126512669730401819002617568142981245307581330113635504431370172113644879732018149681801421844927170400072863355698848324216416695515933912857258197986478811414196605685857082673334669327357764320575684011286071788454783696803588971324994845889502973190977743520966713624994441243882268504277922876474994727114233132193379999259775814171973388379715929844154433757167734990576143187587273962001356078541327625133003913499810135793544866651610165204144015328680693304778326310260184697610544827378001032718674014431968065615596828924360394312029102034876933470536647621604787586252176760810432462211815657340306478028199342796632774050610197805478151288021834354268043004438843402084338838917183870300895789500509701347903330073805821216380236815813442601824829232335215237076588256124666565179865956087356458529513139121381315542721900105926958158483947044566656508411701738573816140876076962231704765094315547654966974616192328015836278466388586068345021552858067171026408971697455681612260883996915807831904018235405858025342407214496411908194255789519965616557097846120924944145133520114458579651167556209385894033127606359564294561662752459345455627459619194182039778153523961572709031861212435747826142022700363180483492383111112694914963331666719297337051251706146441098073247624851401287414797683522095126246917535539060063044555465846404229506689966547631078183124289531890237355773650432901120484930998918572499915078086923518666404862559319682427001280538145353885046818411142956009264457416623622872007083535313728594722308061193298243964922774359034736927983861152222669301270714830630857132971701277479441331123496200961231455713603842776041498198652156561482668074909533857086343631849023881800382304112372779182153081882828709564179633146278795203802784276214744369525445778022027290754755856298577794727476288925650418525447218044538186449505497119492348563738299238586403585239389479725115246460547674173257151019450773631087782718281324479088697605804818858757066247173252336401946680140912953399458386032214134442048435100684984059276179035953939258100112179214530275589833833170072366445754475887512244421059514575030773280330517284421254639648030784642160727276687305888135874536945628189302240641898709951480909666374293845696253353556781423363668316901273176296650668401843164895324527929540959372732773299907031096358854613703192324661935549274309925359961420574010953384354146085579159354344105675226564300596708375879564820456842021482539718044623361489425367806555181481276616626184042461857013304356751658926068265428120028614259878867248322405068920972752497210954988290151331844779811823867326438530235964174886787432708562197130408094024092549839801687583508344709656651229035517663303636261443054673717988750319375801927229544023513970301142399115978151216947260487017585836042145530475836495533462171402060828404922262831238311503821055708999919405934956017774230139884956463899441865206775629230435024524507093315887605556581885929005763939922842748019280383497709968525239449969874477641734082812415505166312223962751131906108743594230915629956515061979933248324488783996657262705658369611227046468078383712122804243830137410398820889659937356036444168178472919284742717423675274252671831108792025734380196636737471626751386393671675627386926914763807334014587551621864289466148034231201905429183048600508232001055219064709525582466296394178259278683978710218786743895527773770659394979404622524879828461194977486402539297323813169084100921198944680131468383333500827701574993676049032456823875426747097081341315018965185596006651433813575730866351196436295406523798866950523833745584730420650169599070686514730612440802657029334266751991605133697263529821875838348918423587501564839771316754244340341111341788818977226549650828397586259993724034436288910547842976627898401497617026580100499718463722441318500284669865605707997665942871691973707025075340728666992963939638967783765720749272942310650924888442498131953004544137855814154203298129675752774926293464971698773341170366562131026903623405459716731043509774830407603183114792838744747475729128622154379932177931422079351366342502936024003666252385529632702379770007285917596845219682752717590625265030728694613484108686581918837955389232510213265300049331792576685220747418291723530808856348438046744206915219479556429788559799771859802059569623602794166296096575139072892049970693551132659743698994918257497571158348647702362775551839077606076427811238064988405004491056550519913249051087484241730364548141801593583874613558108716664725169391829787445480964828425874855936770731576027099791440886751209024576621252079828126101446711285996033477281300028372196620104664119417689714799824008669278087303684120554513022844212873393299776864390688900152581108486371613029720936519002268005501222876839585071475782109091304030935729686282258185399249925577610303297457950368783981406233682409718117498499278066196508953471948152209611225446020700357590058245269522392451428438462444007969787037258789387157170312246701180073965415528250156454387430335571913286397999768319176156770342781889867655987333988530399702141090197093776785632732116708594363613379154078988180888960060340823744697729707961547426016303981157860905734045942878072061782385065551813602583127996923594706380109363720212393335675920371281868313868681139335882060170662038493649999553131008968712981823375253519988645598166606776675064537582273610542116454378810642230863524462786835089691333388193731286236121168914283009811255537721762099768941126818250442078572134064452809568885428575687275636106884931331745421262882931553667610821435791375281149187561090420227587429365671503291177672096892973582141647853299535815908318074989778482038512391908668481767782515157982358218236168268386590534864872147027881977156593801839704492076552486438873626838773178553805531089060328293436841361095051727557683052186158266731034646043990132560768499134834850400906329394406799484438270632472192232520458274332172320788901639177564830073597247021724919340674265834947021793307710729072397549394619280062233404132168570380515339416316180893274346978577572842199922468168233828639719105043541879296734958924031269077002412391247665880739254360358086776375662220372823933237496258750842686536894449875990824060640023834127964652840495506687335748623129633745823084373780201517483353251895412724515896578948851639629596274095130366561114716439166150645839165523341149216182742226096654481094134543262098576496759029903042773409336490165158618342208359988834657980487142272150160502284252164148859574207757238656943999410332811979502910514920201051510606137580139069352807219631755634419971116871512314866363040687410229704450244210900452776563807941890331284094637809942374409162485732162796890085715681545307784570230155211139653982443021479058498219064537433870848972701105839149171461200782304660697709124757989169608304023977381310854631975928389736974492142736829238709062845155496158934862829305834058408530974899584540918442565899255054527941403391448574520639512311817789576956467159571234377365813867178290608234575105262720632899299147790859617580831697933655746308603836182704783216759008975647227736746848491389255460813118810182727015378499232881586340056962521493006689880687106278368025372468661428187354734526107682015377993161905412986123244722134246521456248257826034024554512546199286487802136378624678849844833845541001933208833606953352103988366160288428637840591663607389654962169540568319713660618111097174287184479427835255825927461259384038594634621195839695730031957319855835772252798721192299033754055017921631076147967224421038338787991608926995336314246901623622922529385638179242604268492235930441152607668181913089854458417559749694932346910020565007318277100546620757115193525729749002202909194815212971420049869498213541162784346443046960696676320283651473353819460578267375367792984902543453256929147442623601250363384126640258762824459079909015057233853833734213740789788251387787000780091703892910379436905609458360137663303297302181293526166348848236859774496050901622389312149530990464791142376914248111556441889112116145943134681399660691597784860285711796349066137245638740409278284172083961963343854786744937406420790381241104631837222320994014220896510195583390333257009101790832358181356004623487553715816155368163476150678587720028338414725229004418971416742245037584443409187719458341897755913180031168484917264742501917068681351114191937760854700184219455977750500351260747587963291585877557624945795485100295810917823201480449144404287923354329369098571718624991577410568117369560541417889999537287519662818117330743986572727259836665573701703353278343184230737172765182569765707918024929344946053670439817467615251060780704300581799823721130412381912569512805314148638284742135332431980495357626691949185309745288035718991366625634196999982223402107232362483715665728217498588315388008163067061962097135432589129964499623457434246681740795440902313691986466730764235435774839055213226593404245782323824032087865138919404295670723401803203641119369624455726980389091002134381374575480401438773286658299581398412500703081176574344189478901631197536021815856197239456130714706609018280086275007136361968332134433951338359164164023988746437119991902576416307678086640373908280397001772145702457916650681706491928461285417467371271686603243324515462844077507480466548559260752684991299534552189276442783304315364558073143103047014356295766637164871369673536709039257137586653115420707474894319773820858545507610281111049789012161251160757892641378677212713815014375101693931733536653601371479378755713669947999866700272732744827894977761902212817046754954963144395529005071581545730599679814698950835382955145312832423247547232275019258752008464370228897638955506584118387001278343366618095086449979915965367317028642838093221302361469282759254584638616985970042323699207056963238004162291542645728770129055648681758660077499967827270781767901876549688020734274390361644618189370848662633518695239716366808195854481269224819599931078372540552637201188483151108741154268161719753098291092264606710755050387633515582975685050298682265230848318830886463776379184680914504257037496132231148147839278206848057044008219374830142873999849346348409411552696731044905253105106134166046479517625736557766811301366252366450175738852230642691515695576315316874804375883673476860219699120945985788853336089689110257623318534009175782082648022996786845938802287504595938462562194189702085708740398688004202173978558318579254085057603676080064380521162639039858467607121113500046735000017344764482539178721535819418064369526885206643063277866275585142696145443311909205362972632072968817903920976225278693338570469909695970601082971079250881800953260520086664400098045023836157606030067982990381702793469578085755623990957168013676946794213885339479601131261467566385178266717009599674881667413754518218002172107332176930804619091684358196555654243153274802778354642175071162570827322504957984440629068025086731368188407447183662650603777571277566058915810157053218892782231480826986135474382315975756914305902113174016515951739601469370527848142266635565938500030563761590690153944055600075282906477007828014719476067007426368233146137191739291863009182056867375784381902833105109996905153690940021733508415271081231953431429259641957714153854449046306421987862864386429708055872364006078133724119389429574828814439209895593055141577722819816766547096101507377990382180507174316758499795482274694900873778956472090979890171588358034712493250472746941806458119163690625899892070486804666439400584966948363883141936085345129227086148007672458932077254898514785120801836790912722844626764901162949692221060628605621251789203928629333637400676063778954098296912192887722282268918343890019637385864150919903376155179002845355396848491965829112301202440355293654005518865184965412258470978652463604505448177514504105682512660894875709091574124408129503957602367260810360324964101158452865011288163786827319891621203188782523949926276811884657308362874786269632603882116795276288281037121609123206637755931342617210671516218938871345730134572873249472231668704148434480906509290239967822020917294278940089839215207308597997260564236662413273571457431797439349961777214970954456515422175229337194600674998622681093999956887036921482012120690857622939312149732341774697832175875494984374821453671845787460717513472693844759612955559145298704620883124514142986270150290631454687671831187868350644754874160641301324728322658499937549412136156316045024651038641490910853065466776033652319038880515060123706892119560552954126665470462421281077711350359177265925266102663321621555403100453248891629136506345675475136782081936871500655769059827444244463277080277289035337724774250382439956484867052602980237009047952382816309881281330147413796660657562565464812232736236649503160776256671227916853423790911787494424669469424831982914983223344787694517571985612065166494053715358935922017057668350052852527433231285493513648031897107713754486081852011737367335115004560368033923991780207912227408051668919839826821713182910771147982143489081284183180114023800140463041818203454960305399119282390590597081806442253360491627856489089253999011099879228018849664172503421169429742799651211102312817625116523512130429893814341796628201764960148505212547476721281262461656645459638565368891875031299759947349206688901456067457815590124672027966323540797674040048231160160331627285176143300176197421556232598915803913762500850424811646741394230833771221487791896778294983942341553590784268149730694162506725346824778664020782474472918545713752718140552697609214330402287840372696969870755393508902844558861222507872947567731632219466141475284658344826679309417164294039464675141862187518718064300323323039820868471334877604557288729356953298064078162104598820839558603835392996471077291229205304688304202174342984422228037891527800149201367747476012503603207452625891435764353950662204014344359144234272609059773890186659612842132787257365319997089168281804468899844679317741408039470169312330082441425932821489952356390073221014708446605412513466778826031720350697115387308516244787005537600645761129943143862922413976483268729129501733194669341317138849230978453422308922925375269468641402250172685547040976818923261450015006903403551074876669649531038468917715784688516012059127135439241134835593987836629052065783683944885700001506126881486171789481786878847561525906639632960832360162463242429785454957124457886820738706416175306120071590946182380095738974994544868794248964532744820285035555019193233679987390004618724129901591406181753345968789519082326550754480742172259011183197422163643508180822093144387338065045887063675883293861291211203149503170086110119656335173361040363267148846968685791393881301564283929145153023522456636298061503496484523426374061714820622064247711132206532012988836396052817386821637867925637449524984317410624509734970860171655191271713063168589860051458961803177119233427680743545773403590951751718481282230079311222110578309059334832133662039453247015223360476210620430545885294985929610969989763492341483475957592594023058036263937474708479464799621282711448387159002551428224316255845861637869370478718452386779794018962798074334592092425311681942439368170919568484881112721794666444198408690959952469690822239219984855871545527957980223121109905437274388401379340347524302619447188869657388179658821530324183250013421712081863356891434656544797777703887127832888652864547145686271821504311497402527435772576950908470296966985025406849256929396977417033645908089268433541248135202471636201792464434085015630944804302130933839527381504289102161117299245943175382286015578414350175732230752383725034086230942608310370800579007269912775241961368367343663902611996677651345050538019766057817849816069758616919962800049579253933207188071953821646925213706422334243564375219730680841968376328723968702657282735048150152235696499416564514379651715625041669342113283617292825781028034826739434062585160115345507430746753607787614529919963962578462908221974743404147091803969997040549070407581030151834864829938243778112682136128946336255090200167116091614602707782172567852368160516922334420971998076959849919101825190902755359777460004446158816932422137644490210886390942869330763772011110923234808218339940769825065030019398837193456570509367692262758475711714419047363535730984547240169474366451579294162149823237385213621255832285024267467070846304501230395630463048911666594552587200807049692773635627244571724973651581521085034964921420705847391051858275154996742767550638703772844756479826535874181378256111565808873438135296558953930630543648871150455123010334503610972508352937932119512068189247697554716120568588112173880736708226280768884932328946523899209688096291277912803975976485337236278229221700346302671796762567335375046229972621066780459984413339091446743556422665787440716284544672754476446137206625494651997801788337184472200591217008405819406820202935477407291755553994714301826841271623457762975839512434486395904427257760136974085036468058988636672034563369531087241228500092865950531741336843113140742285456877024494130279899205026089664022257586927440757760572195284408401678797879891751369435196742772142850277420278312179719306292626359319145494862055516173155840682586705573717287049718242493641506408482947292894544285274855943041319045721416175231814287720451446909635822192849557295484737632345192695897146243822065461500058043364929005137582232631983053677906501695117944317328835556630137624248860240704406211438414360808697942313213050062921959663371390249008926575977186607814168607488037155598807969364807059581988699979171008203969114278015937728448856030118416885402864212264685858422642763112841271425916167877361188313071808428362849566816260788354247477272976034285692750548758747703517382315202524435846103463356437629992723763813688688688768975257400172753683809933727379239489625387148003771941591429364245235944528352686084771570011733835052295780467053727899396618843577991623042925505868256252928461642213180376422805505462918049702612426049069527844093677647983620495348721760817947122642894447831132038360282150483995420466309827380688286283384950982249603879278033297047588206950301665039996078710711388691804388921033759126246619247238658482416333888222568120252368031600521870551264347716866290491093802095770765428940492383394011450991813019102673355259089322070590414797437662628212924004752749360838181610579403773368158184714779579421350800895291634208043230383205819946822998670378106796790287154488333738717630600114418941911355040735712590488727320231787927048573867297298836414343150194516492587703670018518983624036048223075721323001112187057105927918739428527957536028756503076924321511362331431591152962575905175071410638141177431772130053004508724142908801894986556195548502234450892990957208581053335922504725087061020573197610443502005108057459464020917198720545656819942977569083075906832662456116801690965720579906559994780804253487407647625074918449304972411805735037314060691715060728889652476435382767588646279647110793151327362535672533570042746919195740459043547653123187912379409855829966047550514845735236431797253782610962426502097698124828843245098396472518822422084052125201851282448724532530492059791120920447070454517711058799341009218002813304615622735028568742652706485961610200632391576615379502777460277075469554247922459358136115094098339116663485506689684185496217294596937020918697438762312332218834568920132246319382792605467164171358674488031481567909796084071877447186686972687940437223479025187026816698941250713959006568370345099491609790156739778060316286824875792323229039950971632498347071826274806199428153634560872333164383284579302045792675878121980561442275509935237444417381740791574469179853731122657142460571975080649492881762535786092759000191256263554013588407085330399302557256888778367009040858059944695484242202216788318603095154865947608915499677980575143548011958588171542800373506333841638491580710549639946512563368605278885000894529811306689800952706709088804182048091017049992136001717703234228608089393264265191985468898286351278123829120416785734774521648560193325436092043506533165705829511806169964919478811212030357332789606667402116371676630379335049066893486179496153605420810272347861481676085756566109004764886267125296418006374932358351118050260063516691701294499229473600410881206665014137221602809547428901588870539973404077430582765093319640399122663344690076427772090592364209955149122966693519789905309779141728102004150553860960494706534372774380222320333959263683508567489930365363743301321353773892724185822492447782472070157676812512117300703538027546020287838259064108420655139281345532166651471452761442697122922728974040393393174969380690121595074952901469726257031840827300234193591781617957975211458124985790762033664229754677448376070102121444175907751828152211904791618932394552622123265803707810604725710491297013327475603376175252235513780660661212896448449672932752047109486658701478715787141579506771927094066685755113324975470029092299019710987073037218053764030789011765111947735583745033016728751581193069785683668965816616422736722347499633848440867135793443230815682713412645263021953071354925647182268649972849348562138840496250519670798010301436137798991371780364776320970116354295852954624937344421441051916707454484584496502661166614199479525324013877355391766628091040422463164112545815002441625264215607184752015047630126064283734772250353167793525913232197745271421676021174033077648118570155569006279764072713102391562009607176347704231364764551892039963609114156471911722488987162473910504686599423096016188811078213192586729340176865289694455140224006815001015313889905654143704695246245963422201548682063217865062525941232715608377631174772894393489191475367755287179603772532212808045566584365799601703695050787083804255643815920878478305410013088477302107180145539936187718864132369964517663133060478759749931391076318130111964366892027843486900072520319914089904341258963676403235195393992793726315037693142513527869089319768785093970753302022448467322256139512738370177978801749854948337415614207250241290282999646352953310168803741089957565284491640231856610350007135461029762082769776919619141244567953151185628384211643614993150640815771722810412000260552982174118282874048684827901536585697263485966725963161501816869869290052801197447534356615229295793875302005519202338459222725617875601993103091039871525193798795000245408912939695481382511775081824233344404023234017567677924201374382176962468944848391022053238933735694728645968781875502587939633548812142871219921328875654868384788461063415821950549719070090428251515243657523098637497691612286883200663051972582518789767612552760422879244846712022355856060713782890194479899230116230678385655046029721450312592053077095067132260994120479229639382692706360546345609700249692147297713493637594606508706080622211457979590327444665463249166925327165821797130052295785830650023342261402512811151760433160163016662394946211328165180436596663985244275900475940291055735928233597617943090414749877749329768554953110977860595227155014416833408714121033997930989891395359030223895992894912031013830830385688403763505238724120065598504485794277256600758138437953985379372162481962001149667888280464791755939744928202596099873888515947217176778704387050109246891428303598725864747579740907533670201126335069491291871745851173626843422098064636891442957875404962761597993621135407417873918286399521231231638406861393656814346415114510010483986132806590373458428217157463608929734729148958576884124595882846113570217615503715332539589538844789458375127170662956032557856950829346613938846259724538757509820416756521549054769154345225606995926139728123918267577939095847695191342458691500921129434992613990856537851428892426282403648811911858812467814146250213528389089737520370212485139212046947757676656686207525575969162192104161957095757452779469805142346849484464514511735426315572851827243208477324848276734439956000521421639970690164144253349620863724945867697934752357569967514210962084735902967958309831065938428463997271054474926400419662478706783707502566206413010165141130405857144504979137178207262564076413293987720727349230317405839958252659007877118961090489567283438584451394761999228074462881640767010515724665581156345722133712206168586946958319931135718097208511646712834914450570384157257088661134432466868898343001563959793033118928466871180012787283390501928697327467311867315990465960210496069391987988956297356097192280626961540602569768951737625358189382796215751504964388707874186326700168079119691158087216257273146162438965569874502838050189422966209044685103761445048727659944918176111961827850155926789700198017791462809237571452216673859632124518754609796888175119125676260907119156527508538645785954896535288988696042353580555015475920816472787024727275758410614811635450094917023053978951846761582463131578802438230627659807771220294409899007997244255334944122641070836349564271101099378685800633131060004647064699972422412011733555161684341370262323445721957460541933116199232129301459356707183679411915305809612726892509043845980056811587021584559801668015431850383549418080298124152488052461880585762687567098637721773040092510334349584076018249656751263208067541390950615454712720766071764819702613762631219618819628030244193228725936804784609539174586355321841412963539314186624128279458909360024802835575717402270930895619038791030767222102449660636907497760787655778743449633592863275822000287685927348877941305480389868559286816827173513588375142625735861417461946508712692004822896678418593838318348654884739323978864148868428463439905043451759452431256770074077164467870738997743213805502565420077317114703223303422583975428629179007769584158054784065080751232549687283468453082686384009673207355258451163882904674399273176887473409177102180519909184085717536260876558709702750055960762132665563934746561185037685514952787251893301332432602523166358474712646531369179868515399800542501120667877393643475545257938451320377156621752929251718365495529683295016109014099683827919508910840768961133809827173941677830946375415951067575864335733932423530509116903457513024217437061313077319352222541347949153070227883240364078460843432754757986615303318550266474440136371183225218565860480913354216163571100950089305433896269066709993422382425834070761642187916670017001456644236525157987226593080552953377459937410102057228037329067616180882874218964477363224192573427158148211711513860888515806522840015408721185429261865956813823090738914768105616099384669498725286979633203611883712585905929728109014038849671629303557242059812308961015068757385981892236628590269435640750023997655188273046178657849415774425327490769412692184038260961263075103339340359477016531841160382373062861242253729648121867811576327433182743055276139621589855767569890810513950974672045656917243206873378710530411680225322432152178266562321176794098021845673101399158424546630979669959246410666829449767091219403451275493274230165032117523775309677678340725186309436584646060435028698592080978293993241976548771884561865801389762889366115346486051847393925287099216460969968170932627986042214660145437897526951673848627286529538051091276821668868974468270002477961412999193033825748588510720501395442447866180878708772345312320687246147365151759943186816346419374945142103684285614116223072863286571642310795163322029212102181255951532824783151586298517858726701804602746319907398503200747566457770418436747766886900459002376238145219353745957206632518826374153040700342746285567253667219529202923497866708147626739725408340492845691759061052124407534073810832695492520447330901926257534281314535173067762921826988015038100252583112740589699965150195920584358657319200170275339147241543820387180684468514446130100822582694756737860654154600655873813041971386700172951483319991079606547851368252970705720729743369805482925105299972452606548375676740466187122176134291658689024083554611536109335638885730387025832052134367412681821354822913246909652447796090614940588802762646976917508944462345053626872542943798948252962669908072036415473004304835947849045410012289404189200210255592669683036283068973024039782691393346386112943283723498958150644585425251360685899481382960921554575778554027766802366461922910174037198511408900112936965199062758134653694820725143029580916073678230802317096001436963115442375370615992672915988764115617036783725024874490324017108384929274467171350863032975213287940102934091423742828766712128801907495151130911658750659620353150710001286127239718238228138356510199182254707650208648152997014328856359403899528553239645814839322707146674706045355025200688016792967487867984630892626434766657270663405961181316821158196333131169705197610363816792903576287601638273457844514345931193700293763475897745574180163779698712677851388846872924225190035670337498093627687574963804959235645177512710513517437018087419980714859550436906613863519367904555885676490500159588997728233614459392424016284444979104076693663301472629386688868075824748586030889628161126635081943009707103205788754269833614590307931353564033923080541799972303355677351638754057870092276162141491738320361730940796681411891582518813578523105012242035264270392035816828796352615702802341303848793878134205167179321348372401256002902186843183269179745467317512242789381792687043834571114451473669612590383357675184238634682473354637706110410396231650950870879248203495084859269645222205496484068427892598704904299177457616081002447033426327338910733478340589709394979948509492316549579481792148433534413466561964667745774092693346645289692867652610021562418739827455172755901017426148088833350476960762664611382049659563988762521274292576439945441710092085501124602965678117897475358580892866271587140156449918423759966551832086161403261435481208279209568064764855413328617628350686568695942887212037182390181952543302526812151727526788385372855300801785161226876416674534689613399362188890857212962281656583589276063403214849254240215363596594877370233622636328787908858427765957005365568781513644743229181919971537948236132858941475232940915960324017267818673925958557733141452541067331674139018099110607112229482574230411541735765455379487109888469602827697524463617227979529828625003417890616335596144707430769675281542672769819467199183073306798366648336183116456421294201230237884561765104452789604037482354638821461328144778304227299575480823822193967114605700960689584171577145109177739073956259536454428072563251785733160647084654622288987903681614836427770715223538700026255116727505751557018876952275148792217739875255901301735680124566283772397395053110459661045687152891330522975107475346614903087488198121303107758722047740031567979847231865980412549039889284985842204276312458368672586491072045579318960588639618174600384286816386386141876585700962509137272994870067953396876511857370874875798656095311868159190283510919934875419985508388912399739359363521133340757495536434146977186442639892945813693361466518521456958930826587758541763163485547510766951949884168772911324219682935281330082883700474799079290988164418693735658843178044907970907781068936048333282880931364096145769824449478912919761383677715127380715744372774423490573632438192665100043806950760099919400041132817238983159975981337386396740696119255191783734578925079935777113845629092411969862855288475034216847906143582561934655680938905702974023287626878325194463263780242405442457920262902664023684080375624306035388948742121109952934655460443818060408011546870923322804835542054299049880154023340796552294819504815902668441951371481877401523361549934042607560683099155169680932891342332847739351575068306498246897692122433983970079440413873234950017011849376912566805384848538080014557363512220424596292852403959668748066846374833815136265253686133309466604029251976251366408335270423254871041139592032684758470840712413725463813010718563514986214639924414139621927529989792561624770141467327855977205240338672249215104102485975728952682875844369373191239400538662823521487432111041195181489322360644590480452416282135150411188072348292469871986661281574174180782352413426767681780314577059901587314231144887569429084251873628850155491663727074817088974713704013046268955888437567908402704745592114443214191805906778862718248523596505437163740810356931747324457808717643093892696277138951727318884961601011440760423839395126791992025435493096591071613315968002739445151978799067972341570540209300335227280584978390206262802081176353037165569199685715647177785950890934941914579778349397583901672840708322499620423397199693524452768755297397153377781246542896735379906506700108740582519220858320309072764295323777255671419546953783752387488039164158906329437877769285662723478871125485049579092573377562181314085282266127010389521601734928558529274940096388423517413290419079799326548899513936200348381917818523373497042657237200146487949271693069290955132908299056784950399271369071745633364894358426891175264094682970555643954671978104067127179444398796087178444482243753187648071008216578643054772966655755956316950361695782207500782812706314577636323038171010750389021019811255981709283037016849806386292285914586050989130809911834813495586902059945119768310570236997701004277451793829460599646206403180955848251102145232516736785119166664060076025353614444358458179887203654727302286587182267220119120241089930302742121207328646792647472073177983100783744291070903644938031016388682358324003365258398158075433909073933392556640067038736101914069996710278385547124385347977462202066907670089060085066143727849173147637499175062967040232981209512908714513852985641310181314817059186192453821096953796510867213531411123197519172010030409464272738301897697898759842368596018425407680881073183752808068915940777932224092513687545118640547527956860890463935078381556256716498064638482521013127600299882059844338542471708765616870075253090156640028573224375174717081178525895307828876508351336674300493288970708004183530050773787660979880045438455188104830155287385811210807179964293380646870415618179918702951194413871216755925144708629532693573232246945230355714263139218099061212456418678483382565426037351793068660843909541864254907381516692611446346858598752850526625852365133725278058804923624831578244088404592783075264035471241436542640257378388924577606566429413055308031712689956978738919705256279348567096693411597945372490396800418584716663880740745678428613945129760109267206006420081059694475304672760730704305523481008411999715039679622004441774093207398949046260714435008805005863301921461985849082038919322486256478050395260285436509597131052470719160811557995298704776216123661496758538414465614943632047496973853588169066876183901283109175623385405897065528638476363660789273709844302758125792461483462455532034606707855218585949422384359000624441006879745185869428855438927341358198886078209681246966842806195579114113084523556341604384068939794697587545585883217402238545922438582247863272666401850835060713387520309250195537756421790903782883391582725023461498848421246736882989006757981727375784039570842381423015874515978080646917645200450857204581848976544979381768699268650241712962988437288043363256848072019340102190295366782666394987801084381950861842487233267557011870551459744198677404996468313689057479618143944701056856717771891764801492120884052220816272739376565291451916999837751102216573863844152018490118681416773026978041187670443524873964071596794388528386323595594479435279378964494348917472865175782821690395951886542731614236177308714475002450949634840670450354066038819975275000923678268193054370737897888046806005685501177797527071883695147202560698499425482724225073360968785056189748576982540554824358587992269784204479247059217833355037319227757088765806477791059259636461700485895183200581413783078785397743446315128647362572536445963894873628191502329898131108169352999962948696286361347228867364802991817592055521903807291063065292550132173938672342282356453239334410627850845901852793005403617746569526598280984129968841036599897917661969368086277157031736914769059442356387818249493215812289083329673489902065192525494875129415796417026837252989673918107016465812666246723252870564645731798979962953185693752212363812006333663953243353562927717573436316997508419564204602175240197827999122790901789611315633816514697440028653200044415973185002124924493828582491267577456907321009039095253945811699540137988564522091484670401068049117275285823553588098980784843418572725408996231778448026902238184519404762499110014480952090101975219628136757061254146653180008092036240507024828861645259532652039169491747225591661873760388830271416848744245747348815489414893919567530056688410812670580979728493903745758103955279611184673929202987390606076356736889556926418338861303854911671729055248204691490665919388283855045894318853864878209967786227411767975805313449441355021318749261607021201825339006944637380866052487772928508378656649308971686513986434347207501643564644342153111911727826301057645156969561346174610253464286863262756136721325336357720274383725305625702635345403001276278824649606915593804489749966562382722088006157408958028729654234093290189245028775381477873459874187415441925285432903759727596799128915465694270344908711271318845445691171630156170463357217548593295141931875164903606716043298269017963560059382676930170369752955760804241356008227964673477555690461331665693527099627601960822280676595325895590427653026592425743800044007285455120696123206269212959153115729056692184154860656269686009516917869693121653946271579760568429007100788936793165754480167912548842673491866280036334227545916509715148246001002135226110096302370024659680181099668198012087601194248740866581626124965440345724419213621308953533616685372252087949720907455151388222492586349342840670160608461073954327243780451763389211310407876581611671250780329582634848907791947792746864174141787358802135842846597524302885159813067118874210092870233307882022983329091991782847461304241479992268980959451912138552942211188201217092088923606021250663402416076326280606946801196988000471378089470429509828200998479067199797019595349993095404691566158349853263680541938895952367382856613110730657243613253523191873838814000934542647906322296636806310450531390906135534021231214558208729223440063198186898222475612050404084216520111190972783251130431773098306099019151730780754495276487750775393254511120195324113008376355182261628514994551363476782181480321522743424813310955502779027062265716651115113780077536440283234592917951952093162609482674093963276530129144961207260350279794599554062593440851956030632678625294352686588536235482265503234410083815094625857114099458059105928181607288714526182928180283868952676387300525693782175857547851746533478963559847564523981384517393037455488981511685981452843358796371345582465779967519849238255301156227316715903253242132763791806020582041185251036671950781647386312750671873863224161718120847355062742278303779520807112009013074869623355846646700434206512311522090264784638191178340415167159600480655793340918957052350118433236329243140477264440213002409138496532850867510717170862853443642835774897063225611124838689182896957190089462965333836728666996813515681978296932705368146240668398234141656955423842675126026066890850576699411111280189380202387630039513887636905106764326192951047759215591042133603456475889631917082292913702032568567637101323172811811447352754730513009583110468428464581327140094022310008219789834039183875963714916210246527688456827718797934454127123493248740202031330777247175377981663220974980078493543979362762904546801564899352518135673597198345442147230514406047179084026218630194577836293418708515194212608712877647349273260359860153691058581621766346849453772874064042406453680890313114188857882421054755527617092821741770990489406907461197611561018644534478954340852457563058807583534358787497337233292753913545502672268421574467299313375050023274845094928679834334346469927868494553125904945365284113070291069763423938742216515176882675791733324202032759176814853449339957858601520813053745521062782173718389675139447181593268093698890798571764386242594492407653674143686359077324947613137557025213705758757299507022174960455175036832134892849113989263877509043832528278486391304574810024335630557001548865312450029102765569563709442118844383412063127059708706356619351942906136195950831978706351793277726643077367867224825342515716222468054101329508859917885701317677096321744359529294165581037827690651323756339372355579530027223506318513060413446095741716807860519968582862167443766414983378806858208582504194991439309656212096306223031089561262022641907957001043858565640155508060394955265336590652974205792955118290256231904645117315985186187288957481892263209676635342564553326828510457720149047659155676928959133545798571227885082683514560245608912207572849539374461828107263392978672242643015903751497087381494756210084823992258195006192148460773017460985966332703495973607676494745660737194141349667522065309286219739911736998639377389458026007481467589064412366038107864869960470994269430888348075890108616622357655276851332579570263107852250993169900337873559531271225506302697725269749088174263067062690155132567437716461204043040537714636944896601505288887247318202833575922344513229496953532398548550086651519079069948987686016434750870521899203820419945355477842218309596160059905858039057904147050990490621401015678722755454793781223098869284120668415755821485997156519027590644667552334417826992607047177095777902181821688056664269913157168339447362137773187921106801698711136370410691261911867404533336248684534016651006902483509941028123254929483660642463587770847521301551044632427376394377027037060615946818740535039889198058954964510602644359904652259934040200458678071551134978400265067397731492175785831194022592690928377324901848106695816341641978040819249259402834344390751187506226977259037789641494273277268123416345267818883668498404427833832425290692776698043857000625993146728190403743591581416466948669010804966138104602803468408573290800133241363867488232147341001774380513418854552333757061661266976312054498722704784944636288214415501180418491388916376823729271161954458284201413486629277053019693774454326966359577347069276897914764876805416430209307830928889211075582990763278876192311326754230896000467754030369241207383518526020655710165625916292026487875698009890896948121833116231566826450422892313931044361847987777788816000752738258973657164115384150367277727350002157860715769078374410985000491089512511394425401537811577763439856857690146682024163070218036934289611453512238360262300939072432264302527037657011254840151207687283564849360326807871875262508994826989798035974781952596497408371804400868443488155555394253674240460241102758886399350686218419094062564269793374689233203611258464509744002342735616966512843221035907743707846362860828666825312683381094795118015825560521118620911474119735726731604874787202800362873912951141432869132480432063828689092162984195773452332713256419965935692483278847289326484838015020956973676921261604110792772173862779616750332314983001451723268207831705295733968021195633488887709361492338196399203784172504124916059946002287969257489443291463894321903985215347978001353023299366761133449411251881090029419736309881901874274037319669322511569972063768030298736149165644311839285147476582946553800359484650618119594630721063025793606390392941772283196881725097201316325967442295623116152877561194724565582753167720481757781775149037482954262636569312924572503159677173231431602974264661139188793369820440921310612314617202454501337568853104766533066651511665207321524037507558277803649919880517714559241325496082912892965156831345484466911180397306259167002862779507172789131196922458521301979622689776510525724448707869112935397356088794588474856287453775497487946632293171717176496326658415903916583247785534744490521908500242834190064937625594430678194221385687897237198341670152379633729019774003474483509399213216453298680255776020609130694596860016021638476269239082919785434331476758110901853898079264736880810843550677502237443002663361724009973267329128375021716293023702153100881277131311764484676452135715271694883316055255472615312842964122209796146588024125490384016243078655057777389019006094174037695688738038323403523139426751973760265184079079576239992625228233322818634235491639084165723115041321095680527750832736339608453322191264861764983840361779054647082959696598522221622549556837007391902981845435511110397361505220066597362553636986359592667922803786644262015870243224039366218564332603182133969247006327358254946738055521976665006328485231671679823002003612073350219929442217448613244032119282667029117862113051111465100574862543875342741150140451304630279255462830661620675090655243066683028915434959358384697432343815926890833423323315279326232422392208140823428645778714757690608594553167630628460584170301824498528196244237543453918353824238685564979470190622493147570157463279601462712695942222504681730213304057332251941333311193662860392286549075458378999192771421026613235141914771365067576220235164020311051405123846412624976098640336928927303929516549454095635794194661061477489403010980175972572895316333310220954103286933495397405055071324832143803531627692340388591440747330799451250481764270049942883017947950743609464965521463155320718301973449412727050421665792277489682503597835583155722177347118521095532987149831420789579571358239017617327394487391522607425642765580071442445922675458542400403199164429981765831952812057908338917440805996373270725256853061981948844606124177485352540635929603668982932398837077598334842907364336277873146180283711403241235399626506463807965059815613618686562004981872097366460052501356480464236928000963511319243971994200301497169544376106506539275412866819343036902304710228524509147916853492258279798764337101477976712980154589774438976705284296399237192501248304434595224251794472165542105494520752903154875784891391991347187867942019089364206007755255536991675547235754226644739567092764277771689115800804715275520474275159790492501152514880143166693746960491933020992896991489177160096554661679502315771479869936013852637968952126611702381543360672861855360603366801505071559371393713156155285470932291204724950115764539253563979445820890968040834606524145058172981465539934818923042302230308473871162968016561407713872111442350040596288087075825653502188980980222783136983737314286502734285053518745584526707466288729213223021627888273896387970645981786917054088463057646755966183759529380229860246200934376097051482928295949555082853371544190067384830432023943924562257354854127273984786816256687786584506344600937585529198901101357241430216097276881367679270312982100823323304486449175305875242676030400222476920969228085591725779479778248561323401223672216054932710879476272742195674064824111720865292654787292818148197162706345482679494068772916544651058202047827730483358963160624516630398618660945610164363043290969969484725219252877936527490615386984109438216478406151301688461345046178745171854468404223430950707388021736852206531083768457854680630588454505075784306388234774232676436926111955496877030939887273837292835315008493382688172545076677875115468814347153035981466731477649563043639564200322519932089809549914307437812837312996662446548190085204201443602086967095791242541730516428980608198967476632574312080350920973939426373808813260017728936979800943211396402773680273624786690055041454321164877635803106456833246757836958675232230567695816107366546289737750388488506429852952675908867781729010589287395873125532512169340598136244782149697820257630149494897621744290067431977776602917706676916998158801236708027830814522826955863825628854407751564754262250761470568456381627794669851961583605986749952063433482683870946570131765727153031102219326073103437080275111907187696913931752007607290731932963959465020707486968637154653739560856620420925886940673274899077533709174113966454723714158398253089108985688878328762057567014681455459769495166635765222055536508346353427371857731547939778551211998185897773004370036805277545392914336731290185413121127781942011858249848852156230730787523262230619880533694976301837660306725190301283539111708148384846214857264583988224467676121298571211509534660352613896346678096183258634950752971059955420199375897626192171990975025824770596003385370919267012784414073751051034817060367671649240764340413475169844254220625156780948339493762771853776658268470425212973340985221825026118276595850304648180137514244657778803914772184476228405373312909544811725752196946465309481412501591569191082360736565355646247630997498623087485614606705527141437325821133463568958153162077185776663604570604721839813421290732124760016776015060299699785243434774558288811952276116061475622328375181648358422036947316337366156233425605001354330957274908134772826012310917878035415811183212818548291032285177763512056106842805067176015372825578418607651480680425583395185125440419622153129621662806788992226606483170122122698938049380540121227093189504902739113138476496816476632972388849509711751924331620001951641950016932975683831814657543353633820934410288560174874814414164735009845293656646535009731893286238425580303663584825646034252222672144102605932611550500047873674481457841643797429130150685725564602087047353234455323037429784744833146809011296797500798069169336928463517592117685690708354583313086743128414791102938383456290456342335696363795485691198223440925941292045985126461664423314266228540638188994757137971340782587044576945033630291162877048916992215753440458617381147811739748986818844541483222148778685934450682607119531229833341064116595452519917119144774560397374310131089202091309060983173357101670502872997730984039164971403750684000462602644411407528513248499704620169592689966565494890761663600214606531391483561113179474872522883042860213369081376976479811209672783228185701044614180923996248667936283418012971856107730600604580575299913085044163481389876904608258912302651251250398812577166860464476863651658253004297812051412058327374674496385490883110048347344331356410040375537309722263555689305296732552873329802360608839838272146429993460223477246042595979606542318465279656922382530881232332781848710308023671685343997028677089473481025460400807127648899056199775862670625753819877370244131698666602966224147037023118271500896790473022164949756406361232177549966813348040675118975732447103174215649420781265251923427109399654154029063385639588453404845453745303494234213681965861508399495337812341231406795807234076644671223212332704172253167955423486677403285923394852353862828479653627398125951128359323006526394468118712969942725591887411206037002449112635200428801037025828597132446958198018573978749124068410645925483371360067046399757371764947931101539058003467890420900119023195771183655821738005298444244481802656668180766597165762140260203597242330836553558532950725689199224695707373603761621307736634106875508260696053528232164129434355369681906307155475950870042354056659943708467558817138512534763859697117484292324287922655885167167875942852998117092020971539746212878050604264485848924908293365517556163268202550522707556127336136305834428060662606199838637250675709413976374618853312337971273491019900264513965077909626593281803188210192874033329842210500575597628779643932007231127790495246366674057973979351579150225864078723753834365920208816437953631765775077376830683997841532333378304124245887795039007400147923038225466218878138249455224904671571421635787295069663984865654971858492881270784159726803900333886530425090674038501978425602118914578623799889676667238210968445016505497284256686441220806333906809100120863753201941274293997960836238885577578034317477817791918372896598876892346135943766507802437367955684629706277468085837944813405402256418420045941038287965112679721991376727709189425298874152931897506381663849118630970508781564497917186750882385439603566057150452586733993446157706433492654907165592574962317877174038291980883230609074203551478472474232120740256589865394565198843264201290847785578028615570078262998677357861180391733900575743774733333526135542378793646721933780853736417888506246571212319760318113102060886753153835990891248099474214393310280345850628715846690797734308080813025954587790936933221648168506035386341009513092628165581176365612212428238501458546053537332540205061994533562370469026065121816335532027373863111121122917230823335870958937897398212592680764917959540622738988347756715683850865119150876235789429875520314852217757039071989030475887108865605289827552990627667410654222399155005329697179704797187689024778564153712874639784668545780812699553960104930786226164533607467737006142350667054154944180528239528506636946053756606573376341608799490783869422868206548712254200044848454463725587277335661162933155576986968176988056646317484868743624692664574307229031603579867917363040941246214033342053896031252542033875579778933479792093768740395352602069143366759140413701153250137626787257329081520527202336247786965817282349769788185214942533559247638796500621074657481615887952215017586664070965365104922534886833007656508616500053111134167572394653211940117058443673180690962039093940711513715507051435779005901574915275916657563557417455627219712318165996757255771165442786902201531828304992918676545267861572156811459748882060705355657376448972896847904651139600188586518208781011940086316232758787106630073212003108823226251470295977911524831935040986247482574393798523923280584554820248604575841364234986522594964550147262659449587357596482991797274922541782127878737638432522372615287217949734475549098589792760573762860873300040343380738998926355593879153741301154467244791085159637121891041094987450051704350034746069704722194724336940181844299750146917128870026125635551462861375120499782349896535319866773116215634098363715129352842059029803097962563781353009074311872850848135845011762101278290339976123369234914611287168097652715085941759106016960396795537328927025963894386864244429285527884511590657709955962132078580344773074711017048810690875353360358063073467239344993561272300060315405010302771695923339083001439030297461066723925314039260994710106483826440689324364231459162176231216091238058630147469798503764862223257235777796325397627915503615109137025370042080373084930742516685008376911293794675339233298881384075392298600924139838045022094157775264387117724829027875915432319348096066878084311635736648089321244894081099647666796242021811003700010503706633503501178230336705198592101170186918864201156744889361650052119480793504107828899434480459504717924339281849647107756135362853776923252049260627974083215898571678986225245939160265381108571171815776553157189083349313264425650813532112264165396414155898004885664104174126297804222243816328588592927587312645310448161227081699770783065109140449779115666142146445209398820572483758470922129943240897611669256397738748937560814699762227902394722169446250644619054926990243975387666018992340204692144825655761650846276299546363407311080120695533505651763075066182194509658069263880314109498514913372570787900674198470572418148659613781916601260841706263146536554621716585262653562460685546815023698952836856375762360073744629429415795885012295913557853612321865908664376736886144641327233906099745516108011503488009123395506216307577164728573192456240645212204967117481863035244067685428564703937918846213830265018563685198126831949814945748935215026143984142492115330176981504075618064854146767192662199106994829855483421950351039433276876625728032647222233529807072064868533546327821830553532771109317443574388133382664334826618386169645924524644455970304429623236151977613414286729814992879019544389985560336563603635259901416158132996624338890915984196652205718288284443111901417788596266703854930606946715334210541464113028622421629783953640651399099560322203741578447703941573820537759265806775889319882674652798442916690854718382122127850813851352029632985731444626932122305935125853612767454364494476073532316646238686863630882285644607096094439962749011111460442720132951918484076377942155623504973889998784499134631542920608494696883268087896931353921576023290850744407130606753298760432724501100481810281267235739717700357727738709256613001817799134589781197544550152857519134652960581330540490494377351039680443327333626612692935077826951056812157190708715160680802088205086776405938686694601575255873420426565791338293189703986428756583396604482613829625079906813604801279364090276191049762352973013935689981591216598794515509746984670850445992192137136486318999789006574710868787712749353626918856114955123132973401016698081114225534957407236904032325078180938692556137901072069877184612607934678818085299478214339596322714361389538936320799746897170306089359852443396047942413314081770122760611415345326086769539798399322979819143926750294162145116509024538860689263835334887741648721677650036132454018544936172112479844374896271989044769918242551300249464651180357504664363025499786692982661058171223685410525100997420564345306411595521203221059887068841138412265079157940133993067527987044742274404414170881311736388029695311399959091197696781889134863957036322868983203613673133637863107627978601061893824590711130093054391485202046482357055509867098263724323190397821046240572916071444728767711573366282490454950125291949758063371379027147143391329388577674074662009283055917973346463188651450143758997869094493701033303763331802938890797742147745914119979854820348307836765286011727269425405509175790717176286343842442526359324727023664319658719102895563310027720542842362556449738867162916826533578188453954815413997553469820973672155952114262814691231234949189161566322828425452185520716715698016619626050881809678420734271816640644351533126030433621712864671690505747514603133226115579125827553303573649153804993109927574307729990324803159014785200512953899885089085371303735717408048877467793232280597755990251238536550892504389604768077247890898492772300737468261299343661504925278047846130386195284605286817510529121845658950296830577962426724346197795931756651448379029612316213021052745206275723619922029155140338998368966782578211053722898827464527886625940667147765416286936543428524797100725072615751503765269333138571955326093044726877605891612751218939322641819432227041222501253389584008036249973178741722108673926546072372835165404259332092721265122965677483997650426889598905975023413828724050070561918848803718106583304883224324653945010989507888830988839759013204420267111111112338978254910773804111531695371030274342534621280860768869723222523626865653170920413275913451305660399721185224868455429349102734803654704913932350300727281865829025546472248442124457679348082601237642174397993657699131455496694920933565236293016107727779192947575982391053181522351979160617904634370804418400780581352767124416880549147260017655835608076390264810372092633747657308005539173364190678785617095233892061106142867974585790677515277902693777036783862257141174217847382223104168320416678436314181560340789149801326990217218657994868013875407849813165949591854846965145917705045173202721607760884200897947535075773132644320241173847583125524186283738162526363282022964362060646282049943186664077178922585324120387798122623961923258966401590129915647411685463043403453762582738329501815306336926249869922971414998023630569802475491200969565266692706933260981635024695503136963559202248943378182127729855556899424008863413609517912808742301952385962314816403629585648520365867064432806963251742923511822560014721014015857738002209109353309223756478316632684263416011167712196615230209930651483236537087672926193414502932503322862811843453728382983558630613230836932602400012433276798398903206288549916048882579542784984151464412049221920268877625770083954191781256631289504010184248761349780388953282700483575583062625372153592048220869888017409175216903072522610829096669973023733390399725220911655190755077844817229756720216743293074751478610981683162620745008417210847706604981700846180821283192781571461296460961042181090744262781247258239899476190496298291226652492498269124191078163584753142844853819500169740672577267534123545230503227329103317643724619572835507648292269519421937361774086714078935911820742435943278442859902879524995491698570549953857537270234331100469166342275108136567534481469974988271225069058106290867467456714633248620747644118539415600433741675718125187494758366212720529028104192089074307460847529486502842408466928840472512851014148634994113071991631936656612795397462599909983106692708092328193086200934113511626850672102640663350187184219145858209979488517166055340017425570131615921766973634123487037024406196325868514469008330682678378562358427316134798440288519441796404698028306291131599927157690716303985154222041625888674645295648331346372731256293828619966311791515032901709689017823759476133588027916509033133691016218897081148745485603589717462767513685950595949108236553229835656798462479944272807871015016878032720506934556665220633414448022709279404370011503098322472659980236675225062965537392500996572579980675623371118945629592553440019790941483136467320323462493565242650311223927828358516936691903099953617333477069334430719049384102811713195952036145606422010036721610293651870460174412010543677365607205925882775682104629322710507187897271537382406730805290402817298766522248263840415829983792179452364683932048019947099998166651400271429800459561945029060300924207255533285838831967491909571091997402056658769816300482083354140948148911514252181228954056417600609736053435953342909558088481332392276124906684617684784637243924080038594997402348220272087661499122213615729104365393255975287816397042077165627157989432650710869110920891243253000767125440337162095643283195083850121886195593596598710462703418964443113414863842492212299927037715641011323418087477634842161746149649880112649594299953791365165020771457218159075249229731500631744158480428670730053962063885994819884310233086170072962965783647216021875733521719909866566908092340950215211575487685033898266596380571314772093682877281683148806619834900465298198407091114832266004429734875472250417970933858933671591266408385264340830856497957437944720886226804966265059859917434375024514346679892309670320803278653436437488700411918238149276475251614199728635836792513704480762052918855987993200373938579303602745904611175025816737937152655934063028571980075981610703528841792164517715562233468013242219544254054734612046343526812248969113284688044701067408837936017185946905864862143534816799377035714254373105278448662095571409054717539923948646547562249045950090278522626298948177009369948244424968553189275327683285931767875507776997961189067706406460026382648711496449838606667802103408444293462918260200903992506907246825958041746360609542375140378771356866732169935380552029261189020762619259034657717991872706592959017882580109341631115523544922590320187580025111355808072628498722192709798914620208630198209941913309520820507852099784992669662021994180145724463319353085451715327499772793823940316714369073468764070822775025770067424981124219816758638285063978195396529381403997138173403296669756822665852226658847049313933484907268437195710568609367674500122011132482532965484397440781982925039844948744520900748690097780282925605695594579341154180106528558633115605071339734542328469873637205020411074886293563631293700680759822255974358058969817605240711739874809328356083764079933837882211203229022483839322839721617578804731028110708987835911761314105325175704946104285416476068588118261347067716401429040039850263681233184294527999535924315847180678572619213539232964231879149343093035353627050164051856114583777781641187372301396636243349852411008686312174405089261674653401799121976882876780933091173223902915067287090681321360504339047984677235133129280654935816814286917090121031307120175361307946840142363406292919612459174040491984129871492194918174584974191358251687888125629472630928557386074498339940518558357575797920112973395536276055316402517376509968696476542442948029677935377765365600677972939943501244877765531646477280567232258377971211560599685660681696260377044233588054211732870918808334093735768199804119317512049057221214266367780832816441480102820808204561470092616394193294020058458065024444539651323966455169047224288215128268490548750141537499667300339717063055906952162025537611786960792228291840220662251807054744321147870684030359203553328529367149868923475904232104132661927941949509588880692847494329895934537596775555166899146897643093833300172719382544136553704085410492349559302206719634253275904929409027938487283789317691118376205328484555047677477071370523410509414307918749085228509982834164870768953892406184987482936670428526953126605159469137484629648168643557105269281305425710749916513631260102245827970867854485743106374604478646692769705849673545549685678606171535204354832600153898915189215422941078322046778452898135202355994722216815736382140897317522795239665757294136314674380887886809744004571587784829903121876202693280563681645104737372207605846244567071696745202530605354350615974035569279587987677432390877531070471269472062942836533221583923607421134328776438195243724648126206921390838069530592321744339783976168286597468728941296652596910913108519626422178276140753436183632417145334385995855270983092854866065556971701094701663126173683020075208044512902153668763540880579301549122838096906416579651905339757265878501573322120014730410639126953176911087735403702798302566378611504170986068449909610738987713646593918836256676178570150344835449905386484758708793809153461481982709232745383218123609447175940772493607900396859624816079986274179565094839515552681539362665919871048606355241118407909901348971581072570871755664889035206389181179166638560974458524196905316028570613451940140738207144361487748557237502990568931686198587479797348609350070012055552622077181576204453943516937500068721371836116651871906492850229531735193717939505190315125881256033839896886704481085939234915909926490952025072253462857231239574627230994437521837942789894076446814558973478200939231715386324711501707486544591187266183055528157722293164176958872321379237505498905946995334208418274064062756404711756606396194961729645947531740811650460099682357486453254254681932260963343003178060294919759634732521108651415717498145488039158412384284134147865225706024320370140149306808511173476786377089098332610760127675324259891947088666810579362435135303149584308290032862145992658126951419681897863143907730464490899293121965186508911626584693245590961658857683143071733017565923676573949650634558393269731383596279399939603715460795792333849701964058785304600847711979490985640405081533553527827927039674133227729558177779446551504529899792549922216885489399029765950405482534084463363445756737056307538226997658723610299575518662302518032739954721652348352944759059556407357857112041922072892480510084680354375617150113937315285505539358617107412721628476359324426161988023374966021729260015812224036832195900187338599829532347443732018394870301580738094184833325041564074853859526403365533822157316574406289391646554954172580725611996822227718888856164355440619800385142237271264551477820264776816890879329754695058596676561859974932079895173662115548685907496557837206107713841794939631699125302257787879089593799441378218297353406531430067221581425370900984535564677549184834878872622169040414505420828785711643909004315272999880679192696617800925288834883566510104400948725768360179505532262288388956860766286335568482042557035834264091428835636390740027815715134400663297794769923708998850095892711575077619901653406174430258502671659848600462323567982858682459766309522770509700594409681576357310151484697907870145768593019357361960626695822906629090445236683725626467836529966024235317279671387230428651209575398148830558528337870531525703502468784337647529224698398168751741691344814590246535086661584501989863315513370753605541791028459011502483116682240537352566165088675743328181159307936985866322990504024896464544520855602104250754098068720857615741536590110185831128955499798693634572902377338266763214680212174237568460813583567623480210005150460141649348733642564542944095038996759951226249580994927658321959430517768682866922098785339597623684179520411022081544080808310811182087193217969645080585455097344250701276423977654718752440927053719164532494271403110252671361648286246583073577313261369136401530055010534328681195244385853427883831398138476223406653514173560428722738438653349110007740507082427661052204703343374413485193045771807551617643620749913520598866387207560000111056195942229159800184522714620709348588257511055790284139999259959610908742862674901441516892487248619396978350695936985580012205022425125031780865559039134431825466063217947332042912584535976813991414907101596597920549159006623157687926670911037303957777363473794796428031683350389940144575535981589018316000660661092569685677139617411206374251193664191442558588672364712037505388077203145028864799140301779049750167204026632057656192716861588624101545745971239986165019426307284820458920083385224630850758209046402178860323968615862914913017680157571067510720641862331432420370821497053437131197141700675119577205724781761167824656377415852298790892183777400719001705877586989386803554570292584224530443162123963437803022715085908269052820798535067951478874919568168329245295308474665043881422039557131362681405588087505154709078639124743831158169941442013456369740931109976869950685989636052959060756317186761390914430397737276157282738139956781870759622030864376543592625119588075168118843309159690970529773931055925808298066888580275933581851281876712852945848595049886961226870458428496129989691931570091968047488127234664850103788928420516893002060609573171100689932788982303752905635944234063337401032041253971137454122274712019612982404728519004264540770394983626153775596347002125782037437852122078217496677554542222299016403185193796203328776639872342313041979295209545244465982957101356185593725898448720105868139572442626998747032538524969168150463684223912868621437264229948755506355455760287291606412234066200345441534661824471093238629408867833466787067177936903002749313332845963233937367696349158749420889386371608509511962917341939993683019624717369540798643805260114904049470418744652828411489037118365128823197789535111631004080927548903078052932679168999825798081784636879835863579388690085296476752978539532464070157002690126488158380695883186403353161138583020147276677258210628410508992992113986187177652781938401351926551851270213270458434343480103412826271142152916552895475460041341055215311902148929964257203765516574717371261337788881083694443803442701515252821186113823117514236121830354099172313718910805094121438312863295818817817133660128340876249808897855140338490457339182084316038249960271313004938462446254192929691627056753313178325663079056177204971195019803092661141167138084908366253902301225145115492179321593920606620820554956634140078916773798878631777984664830626485595467638478005971823677887105650951167899430262953536379560852130405602522117127908831101453902008174739053847890676188868029086206349478321010498688390682449919113499424671419395570268241870826025472207174060649223821877501550849726711371307112054576593241967470653631938467465761070811149599228290339795529906735189427902721979385956543786674570266131912506522953264398083339771744329939330486480290288746321101651268824386215433665291034333889005423126309898721471914673482514240264251816514395586210074182878617803373460304830012439497043157098347489336669012932683863192423521632834355207330420872192457655557311002722280397414000479721273477270418838962058276880423505487433068363667599258882990939706987667323482125100908667680969340636333619124090377033319319289737408265399201089035198262257425062037109671065850948595674575661477469482171793840030748390606180771678668278638034412145606516353629927316013168012140134954905159417097545771767833615161462222042103494536838762912632676206389998453916594495384115949494492181274886561273680281871217083321631179036896254731902780405593493742094085899099341971256133690931212194951426315864801943114491779561778002384290919420640767922151156899465782745472120857396406503206044902853579750226473355304001839092605610861141291642986867660305901648307745397092831593564304330517122237562043972205350791729517909688042044152592003286867471141149933896333386546611562445933344251564138992013768591311142272506497370372956797306235030038249819865222025869252687941414290177152171850698563266158648992800157873478130976346893911574909362445924444752279540310085296947078686194299282559767741754449367340641312771279510988159379492447314821828738913418641156960079086293133349753086374284813354222564076293149890955279736456613596224138577638733735098866917463181065808974904813148374310351518339867574833012538356982078495437416240949687301916686476262316207807140204044264446013948009223768871018653472470339175619753687479920231669189418755069518649192737009818748394340268955272329642209641708714716846624469594333278618288963630105841771837157687121914049925392315772288051274223786992501661401520522152575912488705993193575968070482898517330114934173746691563905375644038939413479671343526930879005741920532632640981774809068550109919552215208240385582325677146870396849156423464354060504822653244830169032181920461489230634198723950848195368063364588468008772617950466526619039185248887905097275794700633238240616286258383464406444549829823116904247321761227682400900402238799041954284628647591384803231223472923164560057777325820314090810334713175744709690007287923526437351762543953667258466893761025544944717570627930369506557305465179634119568780445175651895087893417101287603135351643214882705456177401931636543421582018407026462243253460891819396494867787600467858522818117655975407793329030959392025063714464726047899883647016022610128104398739788725356344155285334904897996550626297968500540871066588982868831597696558588040451575616263073856817463457312471685658381428806541871200701153070606173732694833798935128859627932096629932587551435439657671860807464204280811823176859455585462568713070475813583530239409013543962640527472444020843534117084847818707384153890368562344956119060385173550627361512675816640290118190259638100786675255463641935088996446604477375208940546123829660378084217166999069646900369016125321685318162004936334243229109598583867487078667090210507172490382956971426193755488478444743009887019063539293232579962609804034016761809395161129086226115855578394990760159506376874585395887007384473476369961702857746637498984023484218927892487098312053712363257523737480812655793443065845070318042555133865680128301323880545779979829691880921267340863440723777158349103055458609976090043395459735314355142041398092189360037912105830158060451552194212170881147051093192243269785231363344349391937583514938454836452609283708830475330919109439624248994547936825753313725338848038864538259899637257294058481966839509154376790525241319233510172507783215952282726753365536577784655609540923590357982001077547620390353294617871370757792867440111936504334882483960711142932424419560167817368435952457132352447701705910470358950374264533839674737687964231274812702371394382719174199777860683581820919987691904392610672179003915745074437750759650415767198856187082903682963462406766916937471004436349977505070619511028817660705395101062872306689074263382288349426513984243411253657124186653187767364582333699511483539600237412974172767501546603508136937270396811410045488368630142820102013362580045902079712812815081862099910411136687093504985393641169968505630966639877141955493485874667049272624264211393052575750058857768535828459390039921742220481045639400151461143786813509114804375028173757670449479297113696535116536269933412426539524753728591310626856080387513166937835511974797370468782417615027868018437268676500650853732412032641789631667257668382487816170274293154747220992193094948058189580232542955870950165659945814954390156639689141958180871246573923307424883218061173143219225493931453634311582252423102632882479123669803668986843550023352888414122045666934644916578619988644881062696830705411410485648336132231902493968221650531066018419723072344748273892582668848984777611557998090681885374085229565519510551755222951032837727452106235298138781476357714369232520188642836395936352242618047120697032964372459775159106723321339226048978769683294291514164740516794240852627774895840738585782100580791322623675121977486017377346869644865933305563743341982849348387574430095056409094460159655138781531588926751917562437884069318981312194736880013008081018056982449204765361724973643783427576663356325578450387716736539765527217495804960163126426146864254655638593509075122405925117546606847093728138700268326854431424581342796724231580105299301343763862014026312849475058629943096337708637141299960361183229610828695905832190294335330340904730763560556950888845296679690188835540650594566308117349406534773072293770343113677588949653984762317189457186999311627510457192737951800115210687796654874315662348305041712423463073397565595883792047578750103721224951180942314343097318154985041937849791165709667213164013102857613902058070975885594615466496876251317383022205767257424097748679038031212560205846185227334141390913066224800136573372978005126195656117708912727666982877847107910675374135454304181537219899837075172546239890464093395455458451567860235153862439835773290866549482021298976207385164626665051171114424336476997979423485386590431757921559787908744229488303817288644482332261948022400309550401324440904223481047235753069687717300790535699201919656512301463687673265115773820032217546787234984043612210133946400875382383455774461397582522041443042143730873283424530744279431794327408761205294462257373422848058020558063360945915904651613804068912073426188550553641163098657562971888656738745047878733848912767691720880704875049315326469385549038604702758727126555662679108368877957737229211443110356194135493644711599318319243385735766786059485269307495014230881505947164223739266783762569355723758381516589497272250173310518676383070528107477956141531220799804884921646072473155283153058452982273104181606273538227779722290275065979496293933821234791724121864921272381952964727439136301380908376674068076167083465895735337542440876541248772697474323035049452021687633032365008485799962280170748337673122850821518573085556115230431319484364512500348310183060750345320067321331699519465436412303297145989858159484930997780792749685227990085207803868855651600089726697673435527912214189293729914347933874436796074770522998858328833835706463609252481820272088967372461367572976565421614723353760333543042609247043743941182365027046172132412588315009037208171826728612345547681780141119835761407083628839458527337363844445976763822078078505950526770313120078314794327312476672837086135749080848070795742191686816347636630575782321758031716506664659288486908543937183523539959132155141110006060160522751611894209090143911892880206179953222028872900752706212765111695715444820659670387788423994450328099883120373013600025968822516985544826439728664413422051661730843637876695430336650174999377057947777673295255941315144341911688718618178972994622059340063259453690038708126500825618174925739445692908307814469652719305174856690792618781654769728912632205104431378155050565967860884791969162482331776617285320276023960997009572381450689749440615512292092881036050764437145372393760607277759153674171612385923565135421649634822295226892365282407481365356138103482155141810510589547150179998957331255982258759889239636842742011460084296183677084863284329643324499790718376586149371734364942924356881515477586530830784852260888695846778162339296260071343804723605131407510326285326120135591230951420556636860670761127706758372879046255554738089766502284710954467617386930325796760719807666927173193038007777756742923063393621001687718516152534660219504089669443701524538402174858487784644723009800280388997190802961907142180483832802639689179943822805086526134691972766370045385728620934937972518275503139195611397131259091635071637683752300340535558065670844650617676765297545236351546507323292681132420714213010077114135886875815175487765097315759813117585099339020233821040534846467724285429074236092783860597110444113345517275976498879156886325653651473666088778854311781398022164702351941147586575978405307842301754365318790876501779305157646676339800982171095666869684145210495534602609555789056038738217669317523072559388666316431984009020334503562645889722488732637586595396990373716235174245076625300501260068351624960243175411295548460460408962875102922341117760690566579988562575139647510927407615373581931147324116721311505161480549909026549199830397136685919316093524205532190075221821685804363865404349285330629553636463490444208519117536214069471571672847714512242708229393138767454640082387617229178085083831939580677688007313499992447955981795677039802067027303272381050383304126215971054936926077435726237854742599332589037237129041512629815148564321141687602636312145430086654082970068927691154119323237029201339223445592027048430053018091767748761142090714619175110456931336371161727368039483077021506842394253700573000236150431680189339986856196928033905138955169177203927670232838418801207966281151887043759995104746309253081243555407203775566813760302891901835879357670303393378928822498515443856495650480918346464709468287622791858479995358134530605105283797638762646581413634557530769524273577371709084560987247427907042468871556787882142043736824495468505212867729697742492260685979664677539109035604878981525038535755488750923977913993643352841302324942009408500461836808150562528537840928223901334432653122559475049021433590690643080710959817852473590877196320826186077392640441809393643990576558438491955512792419452434832649015982300068032787569575872625664134858038212150241357383197160983765335111382501733287956414954011144113387079139079190088640128880842697716721262559468817975575005471122228130587713678623137195309337572108939440354843735422645977775189179718437810314119375708883200573432951325275526999632355312378033610418477250125049341139313451017024833133440890520258118615323098580957097663656903023239890831391383969702342249000263707571447456983728480366060506399238774465090552469472202526068658981802952601962731263103937282448940897523014004520547351480653812277027303337614306409707051736449251385982059825519089065852733977052342919337035071211177390369929446055830134675815504487043893617229195960368791818095642015718821014161886376836792664746106853387329198431392048597551357294947726738427138928517367154505530752718460089053505600206148269401164859072532318674298605383918109789119594080297420418512364491037316008982463323099280105822283570476376656902070985252968208040345436119116614487709378315902260638072033923153098513721863063291585594693410641271177976940505517311305044776142865204299237781602225880321121081056272113428479305190381254031460809312583571940145196651427292233071371936752002393259795135097804373234591910918191822469642426547061511093355509653416588299596572565634587556974893328688714339865066943931981164427677503809439693202143682747151592629463333507260327175922302267407892822470674565039291594295632408514540786230534437816039198623134029234480451191833866876192611665149261779194307126088118915833440219522569874596047723266536448052801914535687859827721264624418090074147135668265839670375992960783215203607790086392735435773658985025148442251987453537797880050371817629648317924721607193584035616786809983769546672094997591693480466078901262675225320169559900697556421051888954892763971008739014816760600053624739250312354601967315665416304985921697186912153004134023460449429134349277264629158500805127712083800572845992592776175258173862756793860197781663482599770568012037699461480979723925193554707712077830282481583687799155741140200633307711829614538309011012989581687932128817232178770406683322975663384639289549800294342221238432720681371826841900239250981664131663331024155541993952735120302110123137305622001241907526595318779748948528458834264505742696871025039012610852624590885076754899447179547817293094706581268474608537987943788338876233150392315585311528201135466449353629934363824110868526841516985761266928024695763892794008428113044863222314572180436454329139115589381088817598964762516347795255578949923927541053920052678119967777984618036560842225689904398578056247123349000824696975300289342051117244252273906398078060414242165900346948636646066867841559775343040402763441625668547436642314825493021699255222974768889732555441054089051394101009250849838281905864153038869909283974136028196327363878283831601368261474866173476271877828225285709328052980509488769190168520854999326633534480395900279198928720366235751393686708679199362867173418748225201964546879968389642992507031461550043833340187407484008719698041702291014336033212772050798173271581707527449543282005564826075828260127671564942922636867947279772874346361826837333893436327261308007815671926381211482383547103701117305394954124683865214380332752630804855332385068005763116794359687207731845636147899304882651611975614335649906675297219475845027233300449230148373142794130552105662128544090670762330317069636624132675691656839248003038466059621049283713310633093109731996678126156024008889745812494595872014352692232125333173406226474523530512363587413707532722253037168963044540965242251924393371122327808943701858573252610384822436348414643447839909277515667885062560924683389526769026037641073962915966978100960195233221188023450721544238024082924117278715016229132790067435720347356063203763815085651130589897126433898490988326558085422858563955575929657293677008142291876573462361379246632070179527642080532826836424153895653184315122521732274858074826138840706554069232655737215820961754220923415470333515990050080275430456534525215471352667928777431845038313350528344160290132162921473220055322208905936939213730597403694611767475612489342199060103205134714622870384825702616753149996113679174218556511529634106349369615125216393065836311051083363008154231633187494848574399505257267321363267814370477462138465228536562478548503165098707732331092877918670187006265892037035864830988581477760047081112384772848603003117730490219841753374874894883616535789991991829431186667505088626631696312532568136186784244672600701901869331650609541499588806086096407043872871267847111131660621796180580470971139791699295138757912866915713537655796242705620666394111813961883721743861621278310117791416268977168467471570012240623243359943589570051083697398531039790282480469889597029771148645165769966594727303202397802660398583630312058862554561272250445617572102490910674599007396810827608816182151921589570394276157262110135087043969567591623370809387717348762350430221295193121483391962844629264884274421812047429876489539224265490909210033649383274145959050083630472718465931188300688179341870385044880696343575783922345998422102539018478113400996351623190357971744749849416067157739588213741907166365540454298155138912059027956281270604504596913315004259148051247907214183893218011237185612186129356076153490380700153617457957116528870857931326806114752472616342524639934903074530172940627598322863763360989799932215954857857229834873651992803356244979803262272887992590923983110600335137952884567280529172321692796371890106667825387665635090908704740305716978308926666542154035616802782829737451653437109865904542079100909201311535093407726643775658485008381854131480582371056555771577099709918843983415837305567787696300060310685259746754374693600426754167643724959207526299078511050199353620943808027572777541959727252726028388339491100121296587490744429806717756834697279930946342584122192958693842833583505999542165191984393286164241490439354254344055640591637397027930671194583106267340957703575311720562916706513542799232394573616766642486921499290721796975705344880963541534718680012449502216472258153468320519979882664497072475146613341239286944211969034259348315153809344704492171172280873264239051882052649170416162335529934302976700894547359343293007871776644076520113299240197783237213676649475873271613904845815131993079332669976404377658610496099087670257666924641555849055677537325070810471907483744809259062688806934473978085978043886671276902249855668819437038346426676163485321302372164250433486012421955526824357332018972840029420031922655952825061917007550168015211474817217958462988476054337667278164531686386654789988644403164618407677291422109232189407486437928291439354730461417218613858202292167181172794448518898150711836642150576052608195740816133171807988573781348959345730010676002093218588043258430225892544094362561370782152765531115199309925620706058650540358252470581134044630350187026649414429613448686319551306464300618881512990576343608871415001263461439284383657285784776636538215751956093832307700375039109364237736056939705257491178284410263034843023052611262329628285945850027341630621174161984852337953280366927004914235967226759435505311728714504028460319445280098980759778077333623720790258575071674622689827396212345188449678702184041837626431927206117410276272804337478688256290274596703064134344207792042087704696598424890269774418875924688165044996481030615979823530732953591008668073380661494430866590611252956239077699380042920603168565215846260000916920120878969415482918511326705918999857031649614099734734743270522433433587380659275877591819791212634170139789774995125043802096610128044860558946797746011782936104425175770410145757790941350524105872840402518324209421035299129894750438260582989761826121644980277989810477060798204813721641473862832011588688074406845146300569285345457841317191601110536541455398420947423206400754061808883891310769047635483042427877458408753931309476045296707597483955013603094162855450047268147293767059588686767754130895646118280070701016629121331090358892235994210093206256827140384699332654832613702396997368677771818423992756084623593401459553783010939392617357579654429755796260526401845371271084375197941949717766494126988809576336856860632843373100253392992234254469460214524369386495662721307205094937725555765933336011731647839478429239736106926273428955496968194607824253486908134224817472929997561333126051721971087068291742279424686825890344042754502837203169944002493592118124580679459642771459187240506607278528280951134656626139699710841444791821309230794081947422252769858184405348226222849623783098977835850392545261994745733404735432385332059872164507068376613789448282822213445677377159124456616427774472117125231910006900466640360978107725046281838550208250332228806836305619123726680227565073685882598511229032284733831610298636855844999832173559041692809655089085183731709591207676895608420791476270081930423199646255589590543635378498885734624753220543289339777764798911745809466664769671448144151263636798082660736777098802383453174115679090995085142670366615076891855851252174340063727261588098234049638422782427391476731083449194668756506782593881950429704546800995408895791247309196517883205416763690891434244105864704378913575680287256723586324249050634562901610218106232687022136889983559584508284725749984673201729073699552201622199451308179604350145689829010639626865423474647133632179651628256687043119657661013935648357742872997903926352308762006787441509574308620850417347697488149836332216549246600992563343933660676549261152182966418941664923787819603441271843599919075803447137958413527727687356228490965798536425592303164958657628501616388137396492504727747737007733624196944199745563994375841759174568177860971775450532367632415840978208873489525165068107036625665353680124042024250154593428479459605192080507569530203034986417412955083772772587783428386735558334833408164343125261500416749122855777433593732456773017947119482357716573794411628384765553485477186613143272632303865883081135417066303962887882688958622028373393402722919178428629438085954060806949555903643575595609929936398286362854705725936102838856873594218917725670442071557978310853822882690682311429151219819533030540478503316209371946542319571205503899128992467325958365211312412620670055808742932995310329886549213736759534033858640420062511376470677962654376918889177292196406039742776274034241195403498979807784751513865356338918936162608028606727746549226475617037271002692074834850134148587356201721928503928382494894159319382545347036392091632301494421055338680228723864875328836213561947135134395840235280318783942462758066582286818111667610880500342398766547291745526133749796651983337398992049774150284852503062466534231413339701562641006843001131804871100340334058221114783598897988425526342466501080342156002504076618101500602314721680664636953871717564676803948967309292208008379639552437272412357905821224404986138524249548401945743813161843078172470162245922720354797311602179331894301849290785319663254177081663325687334357415607635717851319319928067982849483129964977893063669110165647131491468894716270941412964042245206151585460572444485069345885484747273950808599467629873263436051591262666507007489019916482493774627537913799702252166682130681518607764927066754355067652366382192289939304020163505144166093767503706202264215479643792371983609841509871226741938739700060329713624476475213507848353681022475704383362518303684999903523012029537131095036529846394662479578649314198301752179856944448741269542837013110766027401659336432645234773118068310243881831425478266281656184304590394220053630517999405120995879599319383356156715845514918332494425274534998988788408883110104421281513522448890866663210591889202060057902607800818384178107156597620235930297631543227490439773666317578622614920678633143824648466670116862772743147303286929034518349320889237595411359183750701995145963556025945126471861411157945722238651028123280972713957971642474110652400810480565495986610948338852111335199030785840036168064514198444305535106321658044714606907636507245104152657365924355939831721345108137603649977109969753617586570475423839610517217220900550129610377582207113274909158178811761762214387308557947194456277304136617369415909644924195154851130792418869509603880154641961320591952252791463444407426866113865867919486555403618993194907178299366187955460772679862759756227057471728917046947280544789645311895899090252761707388827772286924255899045647241597914788302825782137757008677872454408897766418728216993464434790289108728876887174746739372680305987352287818785614763724409955988983053994839575536371194077012126412642114914582059346023322416695564185431108704394722820788903608818379033821043530967498159294894186914242147147968474943969394264962122302357855847905484410367583636378887387481495670175790944502851919318106328277464714603635483905477300491784141997922839854320507999461841438459861273790841707827742685306051593618483595966337047546878370424092249986356726323627112094709776485128855283801447763249206618259754674511819525417264025200083953819979681683248743797451128045818673271366290453028735660434560192070906353319208873046360120738948546835363604518028242578765580759597525233301721032046308144566471337305318526649648159242057690371863402644809264697788845442929484649349504120383629213971284537497898595172513340025808535197889145861534019275244171408863779605016475678051705823374926459309052565436432667133340718065150975961051509469925027567284587095209818505251919158176844181020114354154978438052619733203916567092966748230302546143647826690232291610694871564404146018321393669011229369172593553107900877205139753315428971983761131211835923410477666013001945656276214793748654045555782482278272576164464856661596349852650786000770595056366094234024857199507180834890903182365832247220677191187301383002141910135207739903339287702635950319281108411148329631465355199207363529631610246562369860745422205477872468910685982656278716158773533419454274513372023870712188501097156707321486964613403317482842199084198103613423587715180504247956997058544334207833780809112731336738878144068208689523416882498454946217184041287773182152941256953830203784181068971866290440018379595652087926488712219792048915695507611749142743006327368683623450956540321832799383192607912421228110702184659405348701221711202839659826649010253598558797723511888176355547424724989630574517807551978070125556906270676767377826831386027784641938933129706899147013077745966365864984774094816061103557436127141563453672837175582873284869987700357321678028261526034166352139653785737602141518146381647294428232391211244951217282979162714345239152264692775753538362702238718826489096900699096098647991957476110873794627069571752995469497663906523337751610901282676665591395079778705802790196679094180518467760850849979932774827755444314748264708171684395912494592336971366205688258559709142615328217587907420913571634492849541790793068186689292093683320408436046904154276510632803053314575169724878561228249066625817064605693126403797838901504495636261963570653646506998266014534984520046598770381662345583887559033145233318037917222411728585390177351319049359071555492195508419912183861198204071156380127496633306966358659463642362564466564189846880372382259262083593421583057680555654787843424922499176638887880773096814888749946585493839714292189569197229119261686319316852633788178952866285459425917044456937850945517143266021573342584567964537036572054102423061182136933460302262036071483532032751562339035663555638595228708556701887332439286742662553479192911391096346961219652351772881948253516066135519055458273714039817639503970169951913306392779715526830182218542917647603669843735591066749394934384695425125834295220129203811308788292536198154958053679329754912809102781450973519383010942760534263689877079429505211864363464529675996210460505561095455807587951075824971512677014906248362424302841357317398404714749969164740360973240869825862987477360456562159784564445005715253003784576673707727706522280671863910577981651535044220115473327030137850325944095678787548851991468861874224310818048429798714319448700742833482030017591569940956463321509365227535334289945689901819506707230068806476392937638297316057279774763292691779710742173567022787865917587852177005035162054420242263987243275710181407810586466717874134087990436391068398409391706245344067590899523203999074760632265337173222850096808843279603178115333585057142001819005797290563740570501363473358636437562195266223658066431848150466732835715003906204758197422408987467566141753235878685904157866023012741080190877900901299275790328875204339684419509034042711364025460863554352075678778663626469170944158527063855650699275819261642017741076432111506985571238123778332604129152459775522443958227493756106573791097804071164289958317780268798859254822265576723774833835551751167622315500355569592982744634636986475377642030167816608180913102841265513384930060236111840312630715356204274529278869682631499597139714189529084719247758197589435514646713249290427047375617609540838264220571568994863789307673770589035132738585640139958463136213151258586501752431329777912390348280195459630096910762586290184690390372192103308669778520707870165111490050367455429185966037280734180302156072139085041466201437882277010603914782407951603573192401701077354605869318986118040938034785144869051698736271573872355727265878549417923112099840027753167346657660707218179522771553783547737702466662848105000945354408677500645909154968888520663531621651615530145318995298698096022454426070689637724993425827344991767689532761486770585576837622963671122649172441039764398402640421781807760718352922245702358462260041849112291929315502460743384293834974665142058216258351270841357576331587798526160145479773908704894781590952282324393985970609508835839328159817105546588988290155713443302357518639783600538599901648272664508817402297419852642442373845790340027593040502619975242630464661192503819678936699405116624574048189564758055689629885280164323761975243255832903670097741403624806792755675264060723207204495172035681569899438501073836077932151075055178074024533680852541804600401342089974594684645721689784112043309367727069565345862715645753517633762249750860339493344826499032050761708914454893970463543620602534334373385528929896607355238660187769620855476989680027914794857377841068197456662872176312259797420955199382648214086991629475569481821410708143218667855595824350699589369284173939216400794464596069048822569202850241214740781673711057307888300157852605371318487799012997956364994987682974642838159788675066012894775732239852115177616684224818679521745406565400518386643713250910392294349681567560225786960705825975931565346797128729458990781810326090157375328400033166335325443546051768349855982906076191932394510560541534770807933700982408382305852216107530054355032527765917467649768874469821638510306584405796269396372558071676047164136386433910273976977729967454973176245713925055409973405870335981024820354362768227427248607044887613572260651644148535480209708678792307489540324191595371097944286945802947061552486635869500700440350471149938060125140692918596540711075948471272473471210301245421132637925886371408018423547138119719080391711971415846814161629938137626424226476352965672221952292132747652808281451359596493907550617323549208762660637639384564616939438589874017667754399340459334739920504589948507329981491426456435451680251350918083540918157654878679435369895367765254720525802888892790470226013306284940391273261410036969571942571684087066058617321037604636720788061220454065884253437657510911694981932329715718799005736049366533593901676877956177704857799357656205002424645001314886273558646974247112802494899146136328125959979650462511336004540146921371965536383303524903794586312793447355023521930031945232539135017955785256629458274842795187649672575916017870653170483134824986733276745495233531107528916191118165577693759943294237148846090411487305214001950444633963099263423148548284038699195405287924914477454381863733939593974531161846698062373487273569014418776037736725189091527990151504425955022226785292539612982214974316259205920622858120648107757549487202261671779856910223398153039665168467912947898792391400630982737077450299275337094138477138325043147417020403861281635670736666292407787802544762141738898312065562910896320962728249385526633709571797238659549734500258640718341176612818622975372529138021491084886732746116774655440542883063473012461261030442828511932287437164994857297411224471859724333183179910763325151392342975279889499092938923650931074832379762288673015569615369140378956229988317624031367424124857931279525625782371151856709696039879621797787362140585041820126190165652860629593473108975499119908164159808760293800040659451863403360413808432092630053383121966904650387925594242399276216139726631096310175098632634410941838578947269713617229094288507428205949236737804093627939320981231827371740773459690874573421834032730178715642583364176985067958747521475771206828105433545929076977634207434788281594111672327354464029357687754471277274409332186046130645643178675621597109033253715023884955217075275682750234342050138273307588812913598394317033772363548007963111750745793724923650520790135469406676200812369164746242135396271946082292783677154135358982431163243257054098952162771239810777838331523323341738691486428754725563380537711747594053582195558763745667900766873294922512813601721193650872282046196116629409489468781049981172704392266627753529770473362901647645966003725419653789394487284665408583666664481036529719720398409606561283235645727218069500141979849110680790902648031035862342709651495095524778659301049960180151130443843833013593858313517250099963400603667515152006768424285597386386405094443158284551775982146129535345619345932941309576189673519260993858735624593978358624419228382542969643986980977446059877150900280588656953256185732274647791111163661857882426315904725988673986761348420582159257584394246763928429010414446050599415361112359353917277865339671685885958314786946489337446089456593952579068946499767129467030547351460221716133299700640721309548253998524470226911714958709531427601545123513969823074400031493587260071217160381907061327973981438900339321702711647449267468013413622629297152999378185914727668508598584328896441443932891077401915016375716501554616620729374831477099829491652532504712430815108126918076166403865368305317379012516291364916352898205844192048964068146794311032042065015621875850532269680661221464923116857893803815019430550492289402751322836588004204489965619080729068686394865995104450596768791777085752998660558540221008428485544595499420443537465670854964729321892668575573385947296340354089178650041852952337426846854296724194937154900702726901203090585630917467408796428445819359205320845284491782416089077374183191145370812778815733880192151782555662473688950841655497184135374826327086367171509897401135330676098625359905516035160355091647393850790909022736361891459440616144233371908477131776577029991811694261187998025049966231091903536050791238130469307581971699873289590847515185464613071756339348736341705809527750456359594296262120374908597250059583551357544330402826379023510322580670110671698690846508450874000707684407575746161872602639897613392499619970468682503644586198704086875584850324218958862769976140322190296312608693069910810071006887500819043035251975875270305231421775932377473978762761090310887243923446108227484636321171265890868686922538668893769214772002643983236412833842773193619652610276176909541366076609855974552678461309391176828346450112438063427467382914906840363606205655110024244135084018062679663818159742870819237423667440504552840340100565476787616719859896337697680301894301861706053803326128201909030359958815547793864107771156998127231484170981892593788997213703092957248310545661690078031215711735927735407149908398234323772300430723042192820547187210854155783908504490610887067858318428652534201467069254292053689410205437112004027510346658433417156047769721073722499339384519040651946586694347185839228005536243589993131297415884088860387947580885333375451441257974696878447028456924670267288487458974106926408668622223270703686443680936087149209844196811801646331425817667140233919908906409416271000832410728466134302824031278538612829056502858113092462415346719156431875745764651573738948709938402072692454382121351371585570539827461489566910228379957266139888615456210221518844728356279812187626271229106094080913964261664683346059965617153167862433358644347436043887684103540212690059423689732648342739843323367673547994062292935675153188875173501393649044360751188105530329245944318038408764437525955305152052190902225733863335392602029644394665858809176111154614093699983049007040192481083053147416898178129123500955795670189338399169415895394931567225014356849420095877976237629246383405394674202945006962083497874587506539272170450259892225876899906269776320051608676659681390330212856433380988543745223059619625113680784476122062324314591550879859966535193258397343592468560607681130858641384086662191548558399973247886503566972282569132723434540527610444922214156821333634428338057699854906038955863203218012345410304418882136075658371480896726392128249878825705285082074138914798460083403152028319488729899082458573092587601967728097225413022804071215754844931745774508057939098892508301271344002334395879132181368007076343896241426416197597506674227906582494105453606574944110790244934242545387419213197427059872488244512949240056134367405104668828770521400136518984837973300815087394680346613793160652733847735929224462610408665390283503687872238736980856777718094863383326567571577224099422323345482756844453184807222502080581009790687411172137530103750162916842887623556874451054356246940516462903172069940966600341483342045594760146609406502171087452020901275691526615654017922393044861665570941518621235120252405030943462555394182332391514011448680398494004941968495452732996158592278674564050360643091748975179926668049806136032069597910592907386550705973137233677957638073736099885110166861593792803318512396514960620463338400723473798934502548040860272768902174866763636843847021833808219327917881493881620080762993531205931590127607726167707435144223020333760748027269156372234270240637714563165699331762411140910767880372178502048789049054073246548442728623225208738534467961395494323151702649485805164267658098411428739012287805445283458491469017560906980578492685728295765895431840083048424725523056709988200491594105167300920419765326431745686808754207404179995953044533760760294054833095428703719227722073077521313701144337283051259966020903860140588779116133220459438280359774936335351527951778710038336072946386907864342804326956205329718147434190518741648175985163012919330796540041198558686509478548899996438744192628798725050768599616435972870430760861518322209900172228565119251939607544525363421347449557089701083646016742474944316515819049518674071795466344344145886425377117405576159272051458791228919277961480791571911878301148526919153894664678144168515233648180898556647582553958264411786882944410277889472390587133415317910133234547592111415547469516281338390100935924029059213933282574931351382743819111264032805534791093498001507395332168332043795983320331367301091942951926501909225842557666556493225871884720759658828168787754298311464315578200573435172264009516716398163182585958699797862062686001937819456587589670189395557941329554359459526898262179143534393332843978351282295516463232334575695162107186127183741568445546608451192532834223799946038155501056770207511766308276599335425546675057366435728916173801986818665892024876998657751646814369570984261137773313900014899961459207930064639742250558319266185288880947704542347958516920714019851605601157204044468927806026898943311205130305557900278064394884134313870603450875598986543121603909271447941560967329824465363728104594080449959384985940832157263440003368991017967544609975589391135559659575063962089610779839360869065599859265260373191814087918347690508326966515119932638834381172847159947263028273665918701365316858108821093030028243679755234272787976264991878015442994257585711008882564436651118434282256776204128126583771161177335923294977840758261405412091491658787033720764986783601919607175088061252242750070372984745859993458478691271898782232004626976212531076364383246172596584808305370680015805719418118720079924115275464467878132068137362044389001827991103134589318149345017721600182936859523819335562175104951887307255873365561849527907033791478404364313042276184713837424265343779205282236879786291156658979339224003391977108645016178504947102034597904200789392198751203601275661542151518279960979959126690580741534003948526628360592026309861916922657610855195429267674339250218834884865321436134504020176793903307383474312140604368286975308759061130860657233403714114518641523517266430171753187957987125042587099735465583985742374247992546137314609734921825834780601090740906423478783072332203465907936588357955055777743465259734903916325399124402503157612870049438575593053182070095947481646898569848429973896305003553584164810889728958000597258444523813290900487194718155030281091437210004475065621815675391825513283174629931114272546290550289849198863651975259095270026890503998291048738991917617406534153406367555003490865280163432980135832993489598419406425659440500451838715438846716617747527183270024693639315001866206231946490819377164122780974652574219197181321914352045182986628146415469063897476009736444551951533049457108730085361198453498517960859216883952419371082345987761869518563619692862337704721702697433131569053890115232391155479954935552129265025306859042170278331668160150895467556296224823280021851475412766909848994592334117028371118380733896657515386562212954371812725239436028266023958643666336510936554725513268182042193685251457983168769110934099788473545984498589851222490152740021334387088589849025877396348534663332438745970172159113587278301146208756504486281311227819650687815112363683786691003165196710697156027951823742681762356749659715434136214338623043022366875501164240148369435664663298899409055217984428689368806660584181555235050141655262286815406727725666992552303807856975102708744202390701762574766542798924973870615242334821024335097713177097382824856859997542987338788143592316543162742687730269223511543107852540521859733464608885417325510137510597709021200007625530078215291008056642467087314115020125088270014334514989871206698937937049346280921685359342805821619164369373924228581297837872285976059602459521936106373936518112528846270076616775840871915958675871608815983404125686371509611492824169844230444164139358148424727309321363509422761831082813291307116411632965517883143396515079865893079946994355806760771534284099031921547972730696892287318955831802244683080771092525663699572190546309484445586022228123843056750150080579459391510962118592126271616644842302611605798817915676811664646947793050224998222473937384949221384722432752737201414943255418300949158366346047095162863704745715358183855326208433579719272135270776612341727611387172918822819035224464383843592722809604507370086076450761417218366235946096804600287606220799933850700590927152148820136327581764752932299670311347754810125500828059310576178289978355194654736951674185220787810831584824767281287566703689792143540695261846840089671218008421503595070403747688740133486318677898485174744991917954812876151900741163775739876129535230094233435707407344734694324557150375883132486153130887666514650929559536396613105498655604603812156671869422534672789249882889648011661074942997538495611715296458612612195455458130799839983331407163887229111412283009019304561122893036992369271250968985477008672240603474725434186824799645504704174979770983502258588500276923922323056061479087878273891749939264464008686482402875891237431000001060209884359419181247829162657675709104625805716635804080256221942650190065105247703080442057507168143887348687335900854072783244069723565069582611561957561812742768470072945901170145267221359629750401147713290202007054527326593575370729104077291708159730870886488614134419386244621341158239771805850749202366545438286931565052593515856031078706438296033658950870076321355508190660038035664690288405616511115499485702486417984758829247745947753241723612322622662053878901925863338571047175650526551658082577957989695305446158919078670733234794336638725990200072859263998653513376954656386931472592671128681592689276447104418424970121844256560168036578094811418857486604956568654263301435203606721226014815774196186644712828428086236489999663549125960512727317291425286604835519469493769410233483415539978471607892957143146760395840528726676954505964454990328765730714585445579045212359230642361871454046516958900270981197350322737856929037595106047310471878853755692406128985570311320628634759615837718754321771012702943380629266295766953461374921357555170939089007605656696772394696006710975696686050741761484867329949130383358881006852951030928552460636986231168990777738085639342592038036232416565313199056611392422477931451626899332459804939386974325580301417894046074874962383652733125892669919992759509926515037779509529444793344640176536258900332795372587682824958407510896023406593245646459597006190004624485143188395535286145562349058027380258200723749811991759087545426047609559608120091593120958788166758889098172228690654162351544844016840087976346282524236243187574413617220305679868920108187463486315090125199768705040363114750810983076513047015056273906808478720955602464868901814209194951185702175655040867370243529850039696890654087634450572644147859707780296636840824495664464351358790207727156324499715036522956736286215693254758463881936107976894554660363902962251382804495298741822389591771209144219171976029851414619926282903304254507772232671556705735917974666435451125057236558444802443337315412632603334244971261112324253650915055274528510917314747274859867160239104836146650955024799158008783971283998616375837563178294512647295515752676344506424068371277006692381561710223861771285574376023502663708943022217115110495069350586290757030155323790050203440521788769049374855314469354658998670663282812805958808702558994282735926904159751688977302079800641876536460235535603072202658919812774310553748364149070254591522737343907230521172443690918275922134318974608147963694112552206892251082143791003172342195842908965056534338448821075629057533521182173915496252458230893187353478037124332307630686963298919787003162477939401233399619692624194952258535046511896012776825998397747970226886715702628526290197891797837395849995448243511447257769028038015430971203528411519034217324242766219266448014267016706892882825120554267560102861445803858201005196101964663133404602620409341319033801016769824960754805100331573644732551144440356350360264326240797432320434642280568160754263970931064397410591653108721071774039105864219563360996504605792662591551116938248498276464847644083712113272007647701862055352678739414709787285809950487668719202575382423861089289621847386083694337992873025877530495628895569357261458311615099851972171995691180292137178205755496862629339507312538031857084761465593164493846820533101477118590257922747822954767920535867563011409215529047371131463312683363860015681371070564314609029736194843057027726733562174369146269514956355106939317854921774799575456852690692190027898520540904975074831328086718418494408654027847682319786112743938816950269592948123747028569853134742659718579910250977539762452704347459114862159729964542876409677419206419649536367344363987374703988092237015971279230103348774347745724681383915193901752705140938886236469498398252570250112318040678293564887470001291126883549584007359780178987878740803647148619629013177343379366517523667527893373140741691503297571347761798559596379089356509048975563743096439886286733525337534021469183909910509782367363053824251047750948058610888722979731614075724337062472434821451270746047688289302883913538980184557052076093931218605852691083753945820894590576874171793538763164186811475582632613052468147899340431218480547993999653491362647920963291932253447289754238026700067106295681355837310792813985132554148251498285685503854370066103171750300495161772580363186840835192398119217166424304550583840417360188162245968054556724777402573313301625449336280765822998623061418351506891627601468001942702781567710334345390366749602664436374333712543738846182380990648174998196048631875206252667080835051594179143215750186558702748015370551986438968431208543589528899050835227529303412206987521767505689253064940548968705967338327720793445849449528110847075797690237394431843030326431139596433986099111377776432119507526674147345085057419070916379887154586360208051287775025647586540072447415336893216657293155177004781716941642682842018252809534319689630356372961731550219677376158935531645617614945523262614878428318231195495754665747276968081737672253704426008372159130769477050461161257590182122198378949377900499752191865959637601078977986092230019998665414641449988971622861156966868287406023674382956966789813596195665746922316496726433166554548477440576608646490916617429572140876438004997006077195685683153771354198611026644820040836321754449993324416310734473015023922093396879839880988320315688817438375476739080466807188706845574519702107129626694862460772292664928761905341704493853809163353835139088931112699912991455981371027685966188577735833253897095570483395496643112727462408424706069699978853095928246574038267669975024988540025474554331241131244519237953682038778744605919920961305736683981495455603007621008237439893117920093568369876884845466294992855775804610577361499825318513078576543487979179666461465375074982721403447585498207260114898204524580522467852643540898653630173544809981931681940167918969405873745024764404751780801946312511188856084094591588526045656282148168851562099214652414735677454262115847254603542215290082029125746177364894865045429238515063864408021449066192899572875774290295498248611381303716346304118594543030697016901926455886054321514747411569563161240170651880773554485394373620034568954864428292808794152884748674101110232216170222750913287622507072135396174831349565813555081541595848633955220877766107404793637783678642150458066271398469759900085919354959009322857349250220836708909724925782884837055488592654795598095119444789112455097971911053118021972424813895885940764792930459091550899654577056999036418658570969668202747293958345203314208044934686688747910221663726070287847376109484821129594157422217246992168414728398935582450172692934387562546987579160523808983713174836183296089718913254188619159493028230771891251109298633789450063684441844759749105882622755560064391758640262235434680862617346739225624802223522968059297815475771300899475290246282812467671395501341083710486259190645801301178486641999883216927783864356570298559898456069456954194362277821478990545117718201130062120478703853568723991628576473012929904200769990431741815136239839346097854959306761805870998610788210724663688313578916605575862192112105788541409105107768657423353685403881258055468839876570252571444664871016792560240868705051024435435975327233979993211481493431426721803136105769196861982210870718029881695614878288654933852831806655971047204199497675548899986990081670477678681347116267392165100867545273532809142601555801878383770393564480434409052430599628658779007315546349491097166551905845793633836792675394270857373711779407224679809066219541128306344529711829558512114219792251612091820025292420146243902036547685444450434502599120064046192316333019795738153318417436298319146479848636709749415792666445118519974536159068725417965959205330189640810166958318042969823425599905032850537256887881171881962484511396229742670644205743916108031987888514985067716668186139444376351380677517066552377122630875358254386055733626138121693069322616623775363834482449035246460152528570445953897709497057762345021789984520150922164999088685006086842913673656435515325450063064192044748261858971883563258788913885986256395221224625731337847063884228925275517045846132131636040504337105492541622177167382454914539260461043730367594832280393254812843296636324365147048861580666441516278784596198901911029866673811963585606392972841522766710930968163969093441414170886861774897695939539002647398571929082361833414769640628691738493799049274319416150628827683154330257658823897829164540456711829676821583116586867463039238543670862689503321012711083631159517016460979017309624155365549891832626886759605398265769414920643168535483872416905567321162485724879283563167339954619143575189360587002342431301944409310249092193328096763467623223820539363672175291548883613328524477498858699819988305103892367450874687119439857445866665695446437526684732968773439539439645764901677655860975238915285972324388798818230506335106785192224665326254419883987046762155623385152290315200323633741213147726901418843556487749504161373965005933418395060857765839850295033732556576000132571603970409722283691600079833445203774681467208324799893553120373896105570203102604791922928424850438306402044413650646283997973595546498454224639596294957709906185063054196475753611034869905890821637745853117855620232938687458835960495386654419425908023822665123955439329030624898543887123506419968253607434230488637024922048002569138736003699443726691752325039827980648893373911595546170598099210649017808796422353355613935885111086185449374098807573539667686740123522346293573632889348617984909624629741232907291686927956920075798095233949216829203386259223440815703232934416945864674532327951111485771334164595692112711996815391411108266650212396945903998792206305969179185441644379297230724155425904131025065318136625602963124201537139565811362470958827653701985432720362931497113066523333184535632363283203265704182716611564594624755485959227954846118786860123225091028805420828972084342821203199611961031482475997302247735524638999657181266516108696400232530914750228028593637720445358113675581709255315497774590658809564577104975933105000121962353826466309375726956740966004571399285941831753835202625312165750781933615986209519156832806470989101872257485839365392080471210024881040313641174778684019947329588226713619584756141513533229320752000594234703296091434693858827860749049721505171728302758865632873618158646133138518181286102125839817612563683815683450715944736010299597712773122469593546579027568690840339321761785087793871611591088241639516773853937205817314044639607061288978602423932968780851320431007889797142586884887658153676744970451545366143423271831200601028904164571435707045195652349332709385760455516921028518523698584392410292465606138870545170397866650817325773021007918907095294853514385980583164278579751892333502714074020329576071887582704658932704052006310272532364590564665680817380711063307502558751053535291893604952257059946871343378138088698699679540952824819581075245004439055004499534508516382223176920883087368938179970285123559918268344984761411506769917466128345541327646123188823020909826733376883443890027322126602284847701158063901225129553574826175453223966929626366635269207602607493863023852578453048764961046032295759505132058822869107015535675385952481884264051108471845271125084538209141973229944318607257119652162849533530902770862440370695664637150430376238687894376658549660393117311382698444753972127938175953021290903646479420220158817862116877615735747819324232149755526400063491788784875957272734450169295990492080241129209498579220735921412416479155171225060461399655289564036740842550060213573776403333162431970838324530658734024454915454746930182895707431547553992775519458138710651884130903288659483103046610518268948763800587483740551861591456467957021160309448569136329096113419189659493849605756459387065791106297802357330468592255453617611277210778297876353641321937167900167961389680034989819322545567777470160253421901885106836043792874803558754640892861001586752021823739301870828410955807347909951846047911466742331990813433999534032203937735275240163343049357917888719356500736527275821242054971532221231321133289230411002050519373539376691883316656600866810339410470012099479819032132738832572298224549873292356989793335205009949323734162549508342128112338447042819113049303917713523915847715571727687066633419495409149790170619349512772800437764456870535014534069515362213000823455295295314984189215513787701928053639045559677921049387365386896088520719298189855620964336371639214975017387755488128308672122604809527721767505263612660630039538581482225385517864002233404424577773862563220852152618184862111564608058540989843736396146146109416195100566238942456776034286528407478043990182666335328575502844356282206425466320814811894382657069047502729234865469990391397135181264954520079934554487192892368059210180588746339309317635270270380531149119806105967392270372100832950795602829892832015589829128218849191444519144753840308920600091014262872944459729047157992236322248814793741942798664030214428716073206999550893783911333029343957193750559124593976313579794453399050212833440871593532503611188748175554718627724231262448943511350895980630483126231973892910182450436650670553682618151344777871717762737051277644459659225970388881692060019867207813024739921662964670840339863505344185521238005199262597733664750608595684184673774600124564676587484043576912525256052938886538714721127595693300216758546040022110518440298550930070660639885249888255642406289886116983784889184803326008827856176960595022323925416111394793045555381719564189857326262629206066001658297029736886108263990151792124325476846967733839385642541365700266934073688493744398247703685315049888005139016137417716154329824570545149022079880343245782692931083567769904612942686651820339977460796952008376424734276511934052819265335469362821676342894721502161305661767718637936233279366620382002192376033325678117086745801313038054874007880091390594667534043986296145407030567742380709258331993156769482375369990661859275765358402542805065183581960460632102474200469013339673214885774567467105474668158426330922020844356618311809547814607062259304251904920200975489651416071517525044555437864831556024038357081256646096848390073137656294325040307342584565553860316113115001253555384681633737251431789649402887331024406422972144469079620052488958641330650482969413474413375516401672409032558870066292710913326950482035738281446248017003776574903136019427519946198076201411830782739679157635963661150388289779898901617716159631494191045161025117097217173233261308691688921230784770772561474652728165328725199074280961480424208558333077972551060272796777434058782926063691508909639492256294287512953584347436168080200360063712448638336789045186226011309226993661576511507317976240584391501814973839571533119883849907453638650846877534161875272917197031136640071679026490356052563808538213646995864527864802723709339573772319713629237114956372471034602498076916601546615712540531160272702814280392194052074872011895724748598813490113336066454653579898606855738564566010883141464361487895559977745468651991299274734580353471050028222372661282589860922116139955084492438317540696747156597079597810120685198644781194825056088999306119882146244194542556672741632053448325864184764855241645870033803989957659198497713983299317140117492091004887660283471155564038492327916900764284399167223255343975692026209795203493674883234715295543341535380306504594564648828934048323729618651984370129345313941556685616637472849905807739481571108888260528716984107396515764849957152568634521346835622798538452650197076545645584866615266459493026886451107379565712370732116698166019715101901268764140709158766802175594070046483750569198847431872827038674025484623532133444359757661301843048917928184158394222461077708957918446281836231473957139229833480290718257745416404258947449208664414847154326553434379317981632728448826132057861244435453097445999656706640772501210929388563919920797950590482654159642507866536244614537779157311076625878824685487791237011437416975312879696559364678422606908704965759966613787396442841298281038836761019992942547719980377839657479446934484145715140883957159809164268591006857117860687220160456463747574459658122280476628192376280086233955941154173669064115821697409074940628199162042909268422321447008665078494298356838403649500145987059264574674965131836468772127995176847878323784777333998814596765644339064873055361385258810724698241678982881045222440964923886011270634779536982405880515547771895473237182656767519920413419239246123703937395377099646870155461186893141828829613007730913089870398066142014447954675198105374667814315635058200621725062650545891674182089227088001728111040858591468570352181553642145515270210494497423604008230264599969631990752710678137626398319961909565177876853419346598735632529940939426608028727762142312091567728555019948757495054650206781879348279295531149452031530614006539521480458541552243971627075944509531214370510438362813044785045824462861654316235904227547230764408198458070803962389320275376712868221996507823686919295318896355252121199980952527146741399482269027254936914295535716583147265588177406333138007263634448302080802760465972476560718929018165062997926561434849313723383452305271453707066236696740201651019569061693431616732740625511551728850508422925336595735403156769733246994456067584278069702655686093975508611666446707009589496773463749586424819901826174928084301071786260466062725331827622977456976804539354738561579434447776364006146941226226485886728190296158642430589414846783471029294355140474920464834009776658326123328507951695119533512902603447287912307953057444998251426573975319740616074945639411395466315777034457420931342252339159527559879724958309326684999306171732836030652968458612187235082408774313037219766501935662059572391254159093063619338039472704936734146048622410385305937661726376287840300794195079734263984260812545442529645614716196294989219937515464667497050782998438564463986300457414634660319395749295752143783798909918361832440465409892395417536020053476871701328421564531620361273276971199546313498562591271220003877408343469671774012320586572596674724771696968576141160072260330511163329740586413256580813561119633905154069257835525146075315762204442670841596696090653550200767586341832738195138828345907915171869942015069985674831338171963428970135036312959413144555778516735905487161847946525562441419732128263255562111376663492186065569356429560710987202122549453125015564593769537286123439469608603113956202593102868085884535611687735092593488108903941212726233096005250073088009244221646223270847730192787781911604015654364059764462013857391768741972708848024432889258458966507240581920367149987353185340643536305678639081339598511281403285440617371151780679667358743742697787989753374503234592082439757864840786080289012552606836920539519514881368110801731305233903739546877953967818757360549583820599905886450327382118805646801380527695021121060250414272615569766783785552106144909269762907558592077977285887218247273767773918742577024326065543056893523129576705935803901094654535628794604792155881520170356019180446160951710133476379869636719861644819664208107535571681192315935340055809409983502053660615963631548943749018462304425354814904213521613660938434346401873128147838929083723977380787225227077094698115371744417875992535815478698591718973096907078720705274295013999968138129750339954383605966181753413641690385743388012532610094982881872249972153590666661693146075651194500418815925559236753069545412858530629256831277188478036768993340623569528542920130196848105363934040936592326525384318272191378871347759987207050511073149361449535839871783668298446795290511706910668271840003487635604427317581011746107056535088896646727641364662833916641956290564607973354383703846588000019528507240672277230845030871746842446555953553276188605579901573708164657469685008577877655854186013474455308056619943360371625453100184049088973694749520859891384207446463298484387887661085023160971653761057540392148819193665114000704251816590049820088376827918861784762179581269007985304858377308744970635033940138533682637596197187443343315682654346679281676237647073956335288510973912875037195478343158594028097354899324625715850958867383673882895625466238529634345963491417380710215819183784426215859329926094310120939105770677342192542107908906887617019111701194114008864224584250951451605845736332145902350076945869411881473520904311795710762146596471535603103497113506888666361202981804519965957784520717842295359449641925879652958570510820494110234000891915104216412747189478670200562775315663236207832177679617975737644812956642662191354752054750022220347899686103842074540798097621373510113203906337779193640536861518645131397004960810191395580102612242954807923592547746304003394016814681225285075532221323485195181823481438676208151175497245659734821225117364770450542739696924262919992551042558462806203990637985182688568387950948852539827091077267782654640113936122887737094431645347723507797517224367831629032648703133525316424243517233145357370440742708469534193043225836252444127061235122346430801053224948885974759700214187292463521130532513674397807973784592122511312339730584546815560544174411426586688830008328520346742683548032096656155275718274722691291723317530629920719142538101629601412977873707047157785469108388873531537326474133681186310186344654777825292462582296263904919410725690126246136748285091634763602317517319077461349590890313341727700345587349278495631147171756330515347703643375571744222363050716251123017295885115854129406032007197831271799875621134852718234149484951746915486512130817529508353854552898701785401159333948489400430814112273369393010927511717039941561913973216639433854036698082780339734927800220596825473308926131846314395864805882078569743367722634400217234637351374052397694473554621252975946572768054699453671217731607257115086260272758448981571300086935883521826122179608344045140521025620917740740484308361677750460013353315198478271893404018037455382132357381813017890217392224796727167658946654243884375409721709836785720202739482733323188401551831213171857199606797028041406528772455881147300243213570750904673280063491707305494325446270471803434244187378904816538573967358806196786983086599957413684093877614908549260472634783677097725555997993770593449669024810785785857041638873693501229756774864894185429493027755912179999494796094568859510939600012426399462789376935390425061949169546912862441534217149978661624884647486720996051083852785633243171056966857094141547141405449986007170102376330425580941700397779673935234336224839033999841503705211970660588390380406181349171177869171703766592178870697914928212644321622559158228266216004635368474870288994391408886608259981020305621577009785198721408664339710158543017572682853149123866048606270967261212090745179291504680948618292408332440569313520874915508688544373372463346390200616415295264798956063855589519187647248996894988544882270083398891063526799815013720104940891469904518133610015404356427535882443920180862002152149967424213329744433063610327881192199627942373057684146124443689326295264602592710053282718723393678494815505650423920167908783610048132284261690768140094042278753630697225241896323869579466770259766816815084826470528075907941165412673562969109658838852726229582582869207866413527708813785366331763630685574261349723507625867648588258789160505724954287822234906356602228683703646176764560495397229358377670169860887728942564294370470273206401889298075026645426757135303800896956245330582158068437781677690926513101425394854837827313117501140913187204979158703888254890218005848388527099166880668696557302439192601672967876323086907015698967547340284091678175361297544296246011496416868437564737487246146789648069468885831674900768263276291459584797301010986604227634646265465251595343962153477760547784384096604074097391545140491454195587052312659409574855237351513852541351302069104849440191663089487990427032268968487522636372278536751508059265649849706167356755664741910106599433781875442143076498846665447147191776739719695178877568129855098928228023165679789853170073168999052350265981132101219756180094815650579950991266222783303750071983364832677501023586710048149781755238382796938612180866431827774654105580492281823629620026452289996768690779244446448685774250114965644474171940887673214241447861982233581316702001706912265625968221647449819697535512311233264817975002924527111032271267230255573785994242907160590904716293094768930192879711811492803037356378856989978317984936017346956736173255325291625922747685799701050214824691872599971818296353251303617748666273398809144532758391736324791647303409983108328953171713086810654383048933707887489447307372402284150775531311671902197260430082140370163774814372166644448475998999439526798545789399490279346543137881962889591370271809103683763446663381954069673672856076065237954529637617669867798149704431460425114822281453336902014687738859335797002482450483873663887988490573906172673317099208053447559127946539534243317347775651387543524682390760358650984063940872619001620432263179193594576739868177470630699443652203644971229203728883155881776505588338944294273981811462668402541824337549718170917577739796341191392622438834301270958375671647315198704614850614423246325451552097452167446808842067650370397579765545573129474657410717295698322725069495377990270264956758209084392706792725093162614570054418683571829068891392155039220928938073135389562608496944116061446477548318174450736245142232784543257514567850534103739704488483536216264973323228874284930659039745551796117960319098895259084602271379367252014310056753590226067783294752969511271812273978924018953057889046166748754415039698005695955343744639951322559315739674387517016228746974076422204618011715214443473930882331135186303418019515140055178361072763714384480228107460192135368728217063417537927403750423318852665750510691459977618173547830535659489140914444891885847643445052625761470355644109572200844899787645722691960794145171279812677234212594620484301023534460786745432663035433485317849075260557268241110543949299172517204888187460805863931687279563867301028015864753332321854729720992100833931603403615148176866751051857207047213767555042465250724103952016881760664701243284473110174293403127602442956633093924150983295178691298561899088188289037897653236595158617088984208965646351009164422551546296919535636758819639161403928634733506242030572760848540723296289382154311647270136022974350867856517221182965101896358767095458697035658521225754221067697530764678135143710545890252954017480282264631030763600212422808566052063334882488848653932727892409277457191151584493151820429945752965083139081320238528325710642667853663175735952778610033125730621237518265385953174418935003346060953162880908435290016149965949717829798018207211883817992602722334523395393477988211048329649190413800123796485990834209031851473063133219355197781270942222467874150985184175279064608006298252147733838903138625863251493617193192693693405252782331900690631179325237806479842833625690474729041619781126400788966797933474174239123113818311346591160353305309597469943658625949454897393779676406895978209806007315445603818135530977631703997335571818019839517628028487785366989110610370193182986708162773055130447968752450121557302052920039830657022925820445780267434882322057022320093739648066290327369667524131176332652835330666257858178460707558382426630375423878620768618702613898138536244795330523218930350871581747796643671604718162603895819551934074941115891415331194326192218272644465100034093162869683319198995174583167064013786510451569846248083964499113301190049092227520052823766315389770742332147504304366058880092715717001204247835776837678521750281977720124696326764529297680246401131678374214711040278681647347124156961336396028275747246532523115766549495588252695015335376738892335954555279964273130566929825649713581158505007128582004058747203802181553839595188178905476392866907256821020814136013778008466879944748380011760293887214582397595256584048366868553101050126918395711135863986545960411025143035406784207092992783185984767402316370547335300729204514420422850594124783339110384956963344063182525468307397721586147146871136136997940423853271569759592497661300241934119667370591677498792537350309045075152012588081570470648811950355509698607488616400693658750618696436945147917718578702273903513209678336824499133004187882930110783939974238259562686352444973778778833292124622343066302020335051907919952252315943957358516353533157167169874383386475219922758313113300466421683639896943148388507005996991736275453218134984538777457476509192342022208900651165616119227996271058184316292280937885541720765076429871740326064686589932111283622366336506018270805143995420043956850359561876852397130791956729231225318508227620216826635830806558001274180628555150866719164364467160205153390029931111269446540019840606567242791377855873042803410310280590777836837297193236152787795923022712771567657824237068080456632365956125248497513675020227433207892331209919099808535989112769646615401540701648169696835418283207653284509061071000224497103179674043213774527002599691041634495602777708042981113207552304648447516771260424450673434639757930607276750215382158287425072760900784964561128183448999763291494562387881164027490204804224327398932825694769624578730342538371400731407349945138967142348798064787717965389040666148613528073580697754785747218126483488949796645610931629771495646862742661636606914115075780812947473354725366335849449526399482071406118483078785540184854639345321285557602243741299073305518323249144476909034396663773989536913008953124674139885229002309311268573843036165356078271929114335323095626396739817122487812429671419795283170729540424557548257238220397767960758774650747877310360922440632120902613825978064448761765274480057879726991268080556331338896752964848834930765477961202579619335634689016933645985612397981844542354452600770518070552626155146494432805890141127254317406837965833707064717427658756800109409229660426679768948390819193522835732568806205137247477488953696728349010067257217514158398358730846209315667146990281725029687753884225137947494566644157198732932735409098777317939203196773389462171374193737492216436006397312919966097244912216332012951232194250067503853666724496130411644020251694205440676607772835389165939507044356715947834862642854356749573830257036025057965207217503305418353890336754695626462975030585790612931746202140755962743173485259222596451399093132848366374793053258389322025318567174856104320351810516134311420405078928501167320924615213570861295288606900290238476509402719836487902840243099022675052220389044302078430474194956582449132096599386323824694992484277423675976043225192004011156285681063907337528731993593138765139268342164489706691466003589849439928981468337943253159405102027032197014111346417290524332206036022671836492017592675443855599377854271453397789032818751726935388694893669615149729230851974739972476460021621522884298860156345622559588896290536295053044095690137923373158932791191847352591040318891492737478563065452926142168709995814275933321923021799815235047558242389775175412137238282864670223505901981211686753229268461940828104295641204947269925099306890162260705755378785898868865176890726687592594341560224812820942532934329248556479282091020348657739317820020869741803835280911130046654399539210733464849790713876819819384789173534315920289612200261351601315554411584700463188846022891793622266934391614663161730311165087516137552492170144529941789094389655122640459823777961743544498946152719213514739270132208958160677776993119656022628389288052241378988651918475325807473737194221191632866657335429803131040998685500526508548990981567985179772907410240853775882821804480721007164692958396534100555217413545468064494822039710796134826768230823835592780917186633965214685411554682299520749176493059452565940278319622253497904288947625429733545370239960628499074222928081772614624548084921688907747650472787819556770541946619150024201015520855486084882789802569391485350700778791708223778376170580320667057354062638411735809311921670510241535658041944451815351256750644241177117016351203481796911211179223487814776263360458463656961839622016108038942438441852611986269913298910629736815716642325732810309967898485316682926029495257669720027002345380432632163291105294984158305904872584011610276532769651464851624504894613016480310090859571287424425324382863504515286479278431567205639026717634295043469929591214688490837892511956071845249734691733035121005698556690245410494117521330580844109287611515770902407463166934749990918037811760703925358036934149033866089754119171428851288928829852244368427757669206593096610587586443472954208632267427726363956244672346970235377938764512748207265512936278915624272010495855132153261222237429143584750098785221485412135276474625871998843178138582736105683479630266788521857858616571429171871162108921999053259060201337257127778310939446545386302245865826455418710133786856373844135935671148970738854232962828000889884549399381248601419390123332547454495372791543712188567323376165740313600936113732493959566248438595601177293402040310403190970754385595769212849121624977501693521932543357725093035264033752226900228345515001672559360406984770298976293365539540201518059880391418656421694793206900348167614633368567272581630167341980585253344833247133627463184145328567177014659008832423867291825836427173694002051487062436763926350739723979376673562040638112314905453219578714935345040480207831596497484880086244758669234232250060804708682795610506242051310712956649987012379929974575207196837660188217806414989242334693150159715240985564178293519559926399674562514794506363343721500219782001377602256811125246103892331042232415607101562112194542743727649267559739092785998019401363430059378052587504568578731040239764849099527028999487531571912157457458901627190307048469227108800910349473989039285813905484402741887685882292950136469974422399117266490108675408522469639950399031338248598137207375057454972600843032184499781241008573740536700137941981168925818986205538368015512988027160475537141365711831246451088374409408628358854482621011272784500534385740430580425591480288609782826582607527384699146951053692916661592241673718336967207590478712914929835330997451299187405795148217738410636624083491566967163065430472558871623107995378822632555587270020982347711128448667071592937848822226109086825985024973331194547823840837422121662848434882111571749709541187641521792326703508362589722862242613204565032509468712770656506502479906237349203360570112990260760796445202623743194950463905252545616008148940876390118992022056932835065920599762064997900329268809186544289344648724807357700378359475309488669623999447415720649502167369283745918871540705272761193763511403863359821563653401202201643153911933053619503571128463421449793099515091236259637426614612434611147971174302584358838640434305451391009238403681674411458258993190656675337633316271069241476823375706081919467375331609870233310412197080614113118768778593607947767794452417600255159524407153451497147774769668200421561390937925013725533939735009747718099032859005396913792103163340102849469860979679044328790239931038142655151796962483435911863277917418104852140172481455116667661469909134177565299273596079182686972214285270325819993319602536413772920099107294739239284294821109408420399244628128154735817024769928507326966808723938894719874268671679997867794119201066301290450070030852029725589620279825731747960052140437982471578469875053017146040190612003393311041114089893750814374413872969187168870151602306271596785923630675820088154841551943823760121191146163117226876461104107140749920676731150080024399624584578671936161966279652960953789262646256753950992815907362742508918140758766446473105174629685386521514959692855205311500624194098733662052847959924269600223527483425168863440011197937829631396895028650519811847536422779172575203641859963652048166100720865285109889070932263396573530808254444303446841106545931351538117265172400259549357734555718013341614901559093340094143554264879960814681554613621015112740373937359144462128822917477647374365548460443411981950708537733574089273312283490735355567053314723649909227131396290527483104138859416790211322671693902208532391508768852174409849647101425550477318193098887911402825459348005766399161125539944820606489505341066937602403513263881528834824519023779078083720575688556866499428463444708329613882647529068699147600816849919670045750755304215839017624926222098296581642311790379405039320551556791723217894537016772299371683349728619609723027580613168760379533879088262866612656521507826326326698203179058430257604858705494097906746298171513433960359867871144096113252789363281383822785758567990028812517307945973206409258668641673478732811919907746712031673992010346430013769086683736199595943644614425981193480032439625178614153227411062384060725392277850353535374788609855550164276095918391742103541794580965242550161817684835975379693703246160398570492884102889321065750274519491563355710465655608296055780556125704965627181917258464668878509965155339041288892171771916803597971473909292511592863407306095119130155870049745225604576457663672422309582550038933452313999356824537009919353000094045863921241335328164891151006086977106404039083179890016997823909439155434405529620726949754775733900598048291653286288804299118056734508081899743518032183393968859293685954216599988776938423651111760425798102781710141470062219764538626068490300783999340059458495475980627464290605999067853525504174287522514238282453190691086244332114382946050872946681819458373350309346099542680916169488136505274048846324258617981298435165125006947936270892628325653217706008438975242182908152323151308664440146464177396554492494926695076967348204454855677977250111171034698534393663040486854231925408337690003131491284269882551017925863906800428947340439719876671007219438878745692887512030032270206694934325645711028211967367108229286592506270083640602790067536053845758786695806350783781651266451234377116267055847216363914371633649995378731618582251524078066064100633133108008049908297761793917407541987493372885410828055085766504730384636918107065583367631200559897813442640214229057967605930479599345480144049490388491269482368095806681638220191001588394836291337578745462988297320250355434793128284138632964414322570168280577280301561528519977109686319986801358841764968779510502717287504647659187053657571982811116873059622488020385327004499503277101428090784122850127743449027114102907360613173640867482391075564578463377680699202364735445629497740976942191132035072956342339173516959837941716455954041650892066186188036377358676399599522514585835129926895219590910525806385838203103196388890501238959236599752962810630942686922581045131391724844532939155000479778008857850655519940784542597571510697445607799920549126502531491455664638674941203809577212670841911031460812650720982478359996763959571166005874280260318362637220305572437272280861653504797393650940938570293214742763099121856750205145665721621566111723983621061704085380087773022897042788639476698339841047683386887853505120232453010042151205111554401379394148120009765281025573535885894406092202889458990247122438475007438485013783955213701662590027774789299480700797144022981381718363777341706022144305475279343896403568399552100145955446224744055201596494614033745865881535030144755949644948501145129796448564004514133738511809045503213503753876088955202983589001575161137666169201837827445854258285363733344213678487343157228847413811540290829137710808967736559546088159985529558575535936248159827336765271968534044932739147624063758601969222431480894900377096733392312603796486254232545144275834102989313627114413772100994308620880800595116402285841487094299883597910845141364226754594951459618292029436970650531247663314298067850749906110386066525065456170482577172242624775367293470231815047333947055083215687528282677822970728076658494561615550045561035447417001316455440031599428428137423129773698668831276168685355937729247970742409587857997393956414122003411102010622887431860730180086884154349646524133825265073045694621129762617583455618878585290922653818793782214447997062296833488745885432073006589651318845701092071474203637933244145480350995103702099799843126497386670251404282957053410905452628368616370585654289013632618617953614632463443073333353948366025728520667299551417901720634145749351233630139405129739495418616517366943558725640201415389770439588137253301067543772945430494824164219152263467647687940193652734741064381025195374272920679749186823695247235643715301854243387776001350971606872500801381037667463946487172923008247158430420305207666095492001232311870767301756180408696961297354107666954847321052942175036478410413234610291268828696971932724108549823470936957257546300577208251736145777604781351283926356841172904116640226048649965009067581657071213300536979205080891495210317577441203673145113229039533582497525762273990879962736734133638146331014472332097195589920220738912522825969679478086599503660935727424344579091854089815925620064874389188419696279353328919033393615642408105620374280878750896905827952102468944657769759964584366243356408801394819591526499856251922009263976516107643995575555790666736843119835809224323532499298510795472209195993016976755296804408327885453463881224974499400843732382138387631341770017472340035269041166411044269504528803488957126990505947160135321373709564708529932807202600956569758071188693326276123997702465694403123949221533120927468699707011917878934127151773960132124800179530230725460060071500658155972899703393047807354472140994657254214964445260137304508748005027794256962259505382680039725353697518953652996646254118245926679534093067873794620491011123648815510860203282856150604241712770367244342072766683271832503380438347213592941518371470287781822802723031331546756148214713497457104398530764469023136588479580821664981000473961918834242688654724282826568771703244692824788529078502144738230727150235750785846802412224870886502987089774868614125543134567470351298470504419132744546721438195614739928810108169462245143297170700637214223584760573098680091008051942942098766256990957820680105636428757378431205626767445599621562677740958570159773540194914210376731189215235016847444132999325622862983683230404522487322796494069005706918850738333333998893906404994064678585314171888825591966485230125306855781850858587241068683080288206939387521212804147621327172938869146376591728454181218035983449237065253645100577239300319171561702851521472623971421431544525673587177594353898970597294130874535545362728303359199822147950040232421244776892356520199924683256310389464417941140918309418077684711418907814639622576748698864051027958397602013380233957211362694734406152467736829321152855798517060590016786355646132748711477699927675754441311542286508532740862827680917965667524828112166301625814467813225325863845437188369324554338214849030998221583631516684449920269436732495686973676665202471848105022210162311810399013057783842545179434510544979307819226469402700345442462277035509135874782378582169573748393053942252180669088607459835159148221923923700003752616954428391359681532594477463116076927374876352786116260533892844543946611434777538591666161979470007498144342834909035923815551799304498808679752945178496395447669764826927334180826392093902881861259940072887234509079571575037619379633239966400157273909493422024292194724366285246122262082957087572000579982066555883947549424981354504740494473288878796129241890359237129182937415805156042247086323481916465929056795451953586579782519919331332479039168839161911586420467027243339022921207923163723380143394733662256252015115778002773610094271071370335216413086974630546477834883535179252720317809370483841862090203527998703665575484968624141783991534701248677714423430945854247092654240465412267155823609662295897840995531834531448593209765981655656393969905690827463859487468806788057195073181635635312637241102483999650758435548501767500891973726291494361654899371062480035310931972202119785208898252284849563058159563403558438351338462057666021362132070126551126841865278962816794048748600930505484136876315705238580098501644767220045821566421057140332460838336081756098739924709669216277959555686720936592325980275207330040918659360292888991743272252599400484134748184786946393777527639512789088248550914618376796973442270232814623070968246044106198256127885287632937662001090055028988651015549225958139132020520908895451737571679919153742515961754551270568040075412289612347812165571677740188166930806676953863511979363800491716345271397647519432002601404533969798786595466994091582667652764648060665505840245049876530777743856274101197528095311183585645112538602876921797218509690770509861438305693227277586069546837927301445238524859016345026994752923013411014810174942445260398926890418411319226506254708939851464827458687397326459288667028410892463063994585695577967976070880307129213255250083424123359751142158189819933593321578317760689187295234983240717110045031520568346407100602927751644989335065224814732989826582464544885666045853425915992929022790839190441053249148833766740722768714010143093643956711505628625943456922078079466242710121469287324240257316855933957260431794832925850479445672901342702613063394184840776392450743168869008238730073962460929980896947548401396314485512405270414044117724486998018055100702863665513746110649736540072850650692869964645488101840249369590670946847212359443371553455692664536241753320007535163921214527815956086356371668118945777168659894433796012810467534893097001662321225531862033402340796870707049403010539761198074891156328763271536094969072734486521328353291105232759355016150390087000772813245149043811357579956977658380322841517997492776566599328379736999591297710158346823258642658328269981143658423892573705619588582700812423868452682321073718484126581058403372332765747855730063950087769909948040178808303767373105516153580537508771212518080255418464348371344987960817387285140630495886521548623529702878669695572453760186992480101559363775956066251460117174996952338508883440486841522868707821784603420315473334327422871423011564562250873697791664107338216537834666576685567087279664213820336442150211501327473711520873157420057337377365429405204372809747968302174330353352996609978335606451685603876931447674352734964702122831125784567049423815375260587149207351085639992096004723236904514857319961244346858356629430869967470327641108168386018564362757266911973848481165740627142028915734566216184617586314071777866427939726190344779613924572622273945716194847296694221857834661847249269228306683075034955568901966300813414473802008566388209954623120233603464475801819244817357985446113466628989042739901471250461328881393024862832740789403963338639856852196835373049593116814685450668576868317152881126348163502465715751861332101282919985337962957077610347014360588960591701564078490159100120803076607525986152385955183690572142418761487169119786783136717461868165490511984523259496317910036116259715632260965047944374793559097814303624639611530053745119499934843232600088940128802862510241659631771673921307282997843576933990453550373210683132257983035918494523907923957519859236975219936321141648459212223043779052803074091972478424182245987461487556146920672504922248700393353060699935923652728851112447089392523988578486597439126333391836359740539572785822985454694518652266288143420122994215618513916161041486086725245080442129508066800042765247461743251630636682243910772546447110400544229045139614778374825728083499752187297268226838917390983627039861456315018293917067802569704459252282778765229073706532681600453518336931460595659862659388045374378475618231918470568659917971972902827596235246398362794741153912105620973268121986672901400864244651383283693014703481852689208779098457255458796676885169865753244386565815331416296054314389236441059277473923866396460016367268302633643073785130018293052482930593228416708519341184742490754960722699592092612842929457163430069017510881268773299339900444810370315938145190938333648438554070690068311924909034009481568537917733534223695639618664250717669575551438960833419696960684320596914578775119792376387287981041371609406853850587138659142582886702695189873208071435892664722717378573179349857926371523619071062404423864858612145465170014664634724693918944133755408634795576038846628736283891973949548018063645761447574135274155114324797954759623000942914985357407411394332623003506368339460138079369312118913604956694525335560126862861072947627754101874140920494368797413820025300276015007125268262034050703530793905983626317725504573672974322148837614624195621158086250128330153763547057332836891786878180891936769621306690797663363512923909473267092082938173117044038880150587525771361056380791528942426441955927833837288969311177002975261835977182419961896587278062419785976036740189185552192539085314876539947371682461950619786663036867891398950148036976334039707087730421942714410042244531394226872865933293564386631490835443438785700332167572221704993115462186914813805125356192236703137148499636348824050650157749656293464765964889681490509808433131257316590513070066032378134957046965888750220853682792484841394718184155078310954579589270807559257702331897164840150059947364005036546495915042629751360981219012328975788651571116963405738088736880850412367243213870020245478137611409303231410350009802139262686863866481040672108609968891993091702539197796096005178443959450384023144077668059622889310852309091419306937995274704700998153431295669474431382826704202314095618740276185999594776015929726243255106297322545679711132080666991967100334506065809682822708480448524875873476960355368609396050204845291140070657456723950940994236463255378956959506413990799300937397920993315544407308031733770451870032101317825120746911777651103990978235411389469803649517736002352697750105713137754899860467905769605844642414495291826189944025925506434228196235037587510767207822458588923694051268273725036953184424949601074418059550348951948876527927542712349912548331151263344436894023518865190232994694522273876378123367078361753820007317706284669325597585339891225350122343796402388113793351885035561901300990359234038819361494936298887020854494858828742869275489176470987061174996494119263896863674566123648142802267725238344498886595226553903605574905219474928075571418545396546086449636296197470179101687908036279402692823075938733249523934382280192597790352832865265451145264401980873076264319114661930856420992141912266030282794247552355646694216285037048481597746502256285612204806602471685226288365216702492889545691533779404279040222208217700362746677789208376255323669285561497714414452780746895615770047873039873305766110935723171926038329827615271991229951095101325758846983706501291997174845515016827983761559649170501566866832091061522147916098500829663901558462287225887332127170984950795843932439830541430927251882257063101538368743393308746713185094782906412791751039829097853941171079254922642859843988998723459064326873841719970876487004744027894860791639155337499108068270569576031895639658623131274402195250516259638588939558929515003437089824372966712532862495477000095415574829077807793957485338990321533563969633704311417606852177645208937863350265011474465704336918900385792819756217878169205672500739866636480388940413315172627813765401691484390122316459087158497456668427822328944368874319946519604035306248112462954156043050082682744656841085415769477745606324387027308730652022163741973191093445036166070522544799816052665822143433516290261512300586556088709299263082079118279304239188213882836775668474527329435364078360604929276228598513366864882130583483799805085397537258283622801328910058471061052174628294791815871162579151657870781669997853197043650312529027513815933771814024320869775496679277610401260252892568184173541119663425781201597746052936289318940362115174565962957297388146641016611010879263080897061736108452528910238551878811179672680124156006296613431947888065655757102785951158948648530781425377198424423217895223535638527426984074704352949581000619952563016771687969982193628600729911437821729019377803877526619819112414671031482603382635006164378192107323630947800691850128979409336779499316335056330805695470813056958435090435802416466239320554439474779772242624794734121966919965627140641943815330576337615376309173400602567714321018452668985426446644611623197996631774352533655841515710913140278552790726015285500303375721384233047977924874867248386511508988988478957891944415128921373862247153409040857169168182015551915455913567455518331312333595018311314674780013401480208144593365372063076766497741798102309416551917581636127422552565142457206861798455880503163987154179157106130581284051206588317421043320378756634593369351220834452961082535129777054906879947701230548931077320428602547092828751616598441315704918416734734992422669301556141987386711842608917728663786641347185404813277813019373398705398850624282331047191734127300978535679741032126391578283450175958802127667097093043937532481331683027031799340912028514975292196157443831178302393498226405924005035605366939681676889658046416540407828320769546468143400269816803527760110295743469894858450960056305325375728100326201225148021182177615072908966903660266440634966819400179560130314678619683340095274972697595643314907507261724732907360590336984019488351083503288745624724777241345064718719794130915547784003079780947802424243060941444791882162450373296326339602717796801490943467101324550036370953008571489412116480976612957081602720776298189439171102684259722180347856869967789566722584595727014220656080710428837239616183947679975418840873825126231961926028525902028414319899600128211648724670877299616097478061859099742001426252137542031942142554222741423756770421436156259295109698872228669267816542828420960233280771282325174648584209370423660018938459331952624390840727942481725632729258231041338802570505121730324858532596684325315638471484372860167888511483249939406880921036256477017073547681162546771088343189117384946693167994741601539834815378399546089133037574521114048538020812070632614094976292314173316844484242354903531234567123316535012425896350898953768705041838333395726463984826095608968260972494656472593570575103705699439071469878592795560658558582823767312850950037400088800863695874772642683021500999032857919168502770409779617984146061372434372451191432027958395229252313714859302868948580913432362690428068929897726255472342027348822865630869103354311783988847040064621636360516128467875188643160594798381676368888941060656177098544530198731627013303280535336431206649139341395505125925678749799005822527479979334494392396918158654203148499770135357259367082836385167828110936629583934726321907637471739622090077375091194420145943451534040522937073389827905331777270890184083315780639316027860090892282180792670111939349481656639218219878003722886511708514429704184460096064779978963857215295054910638874982921452459847565874447095303260231398237852763634714064577111863489557160708987760591194397502882684706640802827763025497107518468740481293737405412968438011557959565749417403658926575332208140597782244925336023146807736130660729709821611917343316599683342177832051317898366409165000653511157117221264560550966645360637463000350170789254839814819551933787654849604817761122788349290213333206145457450622680287834310366910250295578175203050823146224888356385788039786898636301597710370319621085789391676955838082957967261882483832159545979784620533924774369728564001951411671871333148845535839856942858212484227579810502200628038089457072027254835398645787422496414048925513965296654347202235211731131026776214827425489034053274372061048104353621279398264875037274253775449414487794168730475385643317657398702171574220501530897112480736834340391670344827025807709109194462692282217048369529551853542624770805765832126727685054068733034378456013528808259614250273914844837727506430460062930716695184853442576137273070149206260140931939028279721851182844025955434548530729931306038838223023358797045681295827584618507075479106813232866539328200502957191656468278825445509532971736560965115775240365013304278775362538238933922496208350983430635109689789524936588816253307521618241522717438302665044327292671832814924949789399436944400020462690864126348254387812121868261127509759525804486387633640725727161131596110742034838376395019453780021269533307640546194667375862269118127827339909406957294714220315668482726140538636996540437819764989764340900967808350789761976790935886504805142093658541157110906620628123832246545535511719938627721223063042629172276278910370755584149864792100257330193269098114653271296107198655701053176847546282686012831415857019521685768108080201668609876648749270635016929159205619129807829120030477540045342265366171863887454267478406158626373346621593612902701651284715858097549712753262935197219973094582113732867622983205461227242239071428708942188475916550774752001223986537894119478551010427267985012810948845536443922134979078376353840454023290875123813490616324501827569281507632514363909104541246121437081667665653608761627091498898388735973302125953770463227016091454254248882743964715753329607213915637509711799090857100089909037974077537653027010099266052990351011837585345614358824139568664998888998404266476153132791192053542554341384237826535064348748575353226220940940111935091249927987837510826964715898480125336144082581922529536588044397532744067911992233624848474585159739948752465534901479639954235572082075459676647568638329474724102699471348891354607628791069400764849531605875680340341976489023896231289264656447472751169529215522173767649289529792326638418610635593234398284713067572978584034216613095909596485129028128957492091465635722238755409882517673956799557948202789650413531773271995000479418119337767827105527092248246962272433587309092411425739391640728195670536743594110521825833573564180978278582639201009169271698396958317551322929049593778493816573663404715947191258964168507124092385312912094811976947579257578706710208587104439518107252336780449347613788882476333903329985493357667193872137186493692262574608411139798307459378791300551557891473827388158853427763080083900807882699682681512599861120312662394468907260526295164486105933409701485863265123398944417564170924441023965399587466112429313738919167918569181373329281811299362767128086926502311732161573133108569862352716516727904986564932152813655217675904924821109186437473146379939525646344290950083645839086742077923155381476352686477958596919456550974806964151420860661833368588925268955058408649312850059602915767102321198752535461804004494461917696847811666746675811377384075707163973880398472991741605956408100578022762749286089520075304456856576939263858971055035897931687634657086798550714766437046075511138269574627638796314057827882130229861422404846201383848162762882720730364612382727185651378198936144152947624063734064498809115564257837540826610458134251131148366414123142860817946067541958071875715154000090561771963131900300550588207458742724894054232864969253318835310798610819543456319502332226721733259548429311545568654574273730841702091261948108937983852170085410913458686221030510109597788552394191795695761899612149846034051044441606200370628181529354222569916582217100369990515402061450181679216998577953489397327177123083800959806580592955818879227074474733915859494854310540074145474431908206485268661964281952626233878001917911502767330031281655484902315418032204877848020930484262043724924329097873624346115415589500677032157397912006675471655973922872643170596221851205653394266050839363911217864662870883394679861477511988105651911937939985493196555612766992136897215993204796736520303742175756192786203152133312777537176590319028370112344055691504512763113959605195022471403629232197017639215992496526860224902213016287484428431258425289848963653244845130948251105524363760094958026238477640943729251433253719706760419215912062587867853361540148531980749211962407470032974671886311193770774656821040260835880645634133793602890642954942702167065316288099056737874772775308739603863151860382079363499224753760064790393530423779298147256538668407330425051846019005701687138890264758718214340884754036243176645778969254198529979505732417288421573901485279894615102575548109366406134881943489187313438242140220949499920262549267032194860365470441246323316245443339777629388525119047841521205684165677415101343287257534399794985242180264225529522326955009519269327548687045257637532538123881427941523987700624284930360906035967761279848662880526985011008935617398418403549869395249854102318709314724635153898567158574458978994572294371206994949519953595009679089122137036033653795408606305341452039804006296855792080161166057018506517221568525576981075897315728449038885806699904118095482998985745893519753901301592650880031816706407452147821303652022207612253432587385163336369136018543124959293386562205498769388897506047049615334962414832966909190342151096993026449041013087607221720035020612274610403252275464352547645203916124636389519115546061895429380303697655280315489473306118259895911984303026639409657709252752780316188233464299619084057161515893711404037990101849585495346309384456684523667760904423138406977914088578897953463496238594433937668843871588367774540750583859704450436525164183411234339653986517444238495857597121313618281608073067232689118714522625782019310838051552548824386235546436291746183630530993812779028530419627418296935379421653644124433025971145941533417519598337268544133010081676190886273442332277503430035667336602813011515109805120562521729438479585683867783061774038149463950692005857684728652979191167645705135736195422984743936400668403785575806019798881414258441453244349275580535459778635773891935408433217825220382187077251689291080973196239857058142588602159018266463954009450257879032728887054595081689363977056727723431521597579325409073384285559291781574412679228116844648714932477043518947142510821564498224123600102230207413842537399012721151952032608883572522200661947202455958540403220127119833623093260522121018782681204302829824853692350736003085340375631915469742513936191998065835352204549025480079879468527942614711354307238104119090971820026935481964833174822834732171427015228172411365440910756937696217606671933083427983093068706561663796153145852903067650381630454996325246349539611169447640070511308217644309941481438682188468485822979911635656395423529338531343500412672205658391844965867599316332992324489431313103339758206575653415468916130664155516516867291078042314101630124995021058318220833735515722706872709271616668528178196529488985463036853460768321887602722999067909535716119419034013446100551513717093514497117798155799164018376679494550336064651197186430433788818471557689163099509402473469138980655784127567331222134015974932726504396159097855879607295120334128863727521772899765476300432632115401472250720631887894351069705383011569459836008873744741430513055943890522987173058581377268318487094976487029927653357012850387623207205839287840030532698311613982151724474285035158465488052486048658128618919606321751774604672567992491769182868877297897307580878774693416309773984346890112142520720116560419023454901430009491469277117812561174613690108754593448632309902041745870789250306615530028612470090193799662796242199549754407678933270952883521620153739588111596603918184581748769278921739623688527717284657779497728759096007119980027959993766197332970427467916091169753179596632902261130943436827770073259539467996734602315720687381730888732371836449944003898592971760706283436755389466839520757553810288851937578939131793279609084389031603754214054080767466180165752540541517499971903568080403901854403286438033487753175352783712044005831074192231179340993224933535959969582150906926619587872514554440147405767369304248598497088036732631500369872837281467563140329997023626409089354546673733414362662585453768273261025122659022850365997395551502822454913551456582038267498754867124505310006099995075451932886711402155109615196054480054076196666279621578637161272476411049470632059400990709219052314537852839460632460298841986864685299917207939123308174160140013763127811644367345396086299205519831493360953000741067744563236888571197468399115827888896203672875222807545525075989931789408989347850707518716077598572908217223258334903190688005780555158368477418931220228087014459380810523670991014557502788193119293323824645356445669081803901705995417640239611652170336156899963518987026602357989670315857644628721502032395696491335550030881683213651795242918153037835702971862869921608534022748410456620496882518454300702619364812143842087092288267041313700793072121285247487918665112901847507874682910960782606447315290128285661630798784806197166134831848990127443059021935764106016360227510842373319283193549092650644734247876140849490435763905064170672511985764092313260072343058016032662119300517023335410684574484113817645670653045838963190055132058588045197306887571235940882053097730083465905838450448339233603794550098040440005058726148395168829569196029405883908273357546825066446196241717751468738115240216373858659197629858658040021005500014055291926754490899161664334828557822046859854814556207607698360767964523350801409637489851703403129143533186263303052408182851961155668968378873632946724133206867697460373933382513223351958869930559207750896747936500402395674876730902607338599326994710647334919015717689491360519644325525047979795990301958742700939861320765560875816860455433691664680783033836128755348067141374156611804696186088113556088607980679267436087890900318855253374603164670041965683611883148245286594882601191317677572447236758450945975297570698525754787388853177275906417683212501619659909924710650468585905345065054493285839788118313940440528465919890681489161314960713698023659361767915673961925820809630438054235137611026287192285132079922526024463488295688104871999023175697251364432986557136857639542771529336566123364265536849700609894630519228019632525371069138942883897807652905764230467427318731922655046682149460553437431380681604499520512684671956404470441685936968897141010017890716815599711814722180279788226556141750017028660454821726633593475632589990785885653666564339081263253704085193040337267517990245035852011908752006805181858940547780744088671196530786455866506430380750386238501767771908037403917018584652586540232393944758008082165724657606293219843075053292259689211796897121034726886374029999804816974915478051485802948125369491275470032465443463409837670901376973538878284350365087033149545637703227902597932553354217469513913589379295997343778678278441870947923276711000594235346347678101897707193033830609419408904962857694146312731485066130911800915170157937278299564569370104832684056592597046385993927037575673670273025545177848520058999045479465579340930476586250250412478678744880104645654208705525518493123831280683292043740073686143575142085207004313347537222391123994249379426374272661052475911745680274059759556855563010196471883101176385927496429623625318917008617299019864866913055863966204970188687935578294566441769954466161712427910558458359312121591213568315755747947340091682482235050448310134811694232142088783158170630142568511913080884989808122962721750181869398349166890809681810570235158601646363093385321664364246835378572656164169654369510289890804242432854993343456140380120080804491479805467570748246610731268139139860670005527380321786066615595953852196762769815981794592645126158695508383995655680474632202582791699601886048262526944253360140582180858340280978726658989419073567648207385193469920780421318240548515617144166220847006139655538322549011455228932588489273237033194803500926734916480918960383666923479673713114299615731034050141103686064949489334961098890881821989492384253700735486029291019886763622412483529491150316799101967298508098875677680098685304634494526761848244644767912966275445006899679986253235783889151636641189902843129641729519349339013111497396432089382855143091060662819476429310565614219118634961743121686783937032437543679321575097455797481277856085131827027428834767328456944525432313509049509779678453121162997357785030423130143186729377674767435040118762856893766084327545423299184130285101592202930297311953838759246052790265196715390803616432626686931430247051526401839277075501421931981921125575643666633255430355661807100695093106895594934298361980246436192781016948331188484056842935405699172417437236081901588636591593401992007926329543011023800575753662270162472909607867527515443375455457957548573116026722481778946624819273667810946957670489825312090762971578119348586818038550189966911559815692591361583222016320765785995923259477980458200062780012094165834664546948615509975687546196763376150446762974440808384715455681778732162947312903451329018757889126061451725376437844205354390366421144779994321773922314371523932273734533189235217588891569204878891950393424158231114761705094900414470111148413512623853102203699284855553309698091184646920709671111446812904201483851934219754452473271457958939208905838888101462990517606312730151140408518441232939351258082289553395983924006002574350393099236509782955037847679040823601526835338667020295320803340481664454103899295445127090305814420468865398899558087173386660735109383575188358941612410498285245776482547725374544281218350436205938913371973662434986607501474062843719644208595745239986077919007873475732052843230824285554018872106852346715005173142445828395088505753841748161358980217499952517074601204119912738773274751493884469692285548176854995997083004077321365219044769991084624135369220150367909858940653089320296649329031778039754498938860657056210323576625721900166868708783887986143310010197620879470481761685449380135578221279051626128065487463085570848262534062882136049208910879037079422886199095225353364876472473552612776254763703720217769055968377743023896133460100937687949245453142724509203155648796611365221151489489830630287778259215547372603680064878952606133098191092431213332321279743943440499105748698682605654494306228526043695757565130658411204201318364490773124870705969135536800908400585676820358297968106549515545117258228010365433053931343239143906480234967311535909408112340593297554302250567180653189777190524831161104579545967351206360912352519817356134087156944684654216468902029222965222115754652716715159230601845681597431853216032623466164051127151272729517713178875315749467745055431728605169312064599516599662681005155001469213099549529017342755370786132420315681403895029625394363466248013699350069059670373541425692662124991256162624034160103964219511023024489365240003198616276809155385697639052667876168819096182611869870108525561052797631042261569469138655193672375803626074898504178642787056847551918666771432965570219806692991604340914910888406735687499188174635187420708767127240290735286673923253013143446405555660844862933112186319273140289729716985294232011810121501582881805457075340493675334142939877486106902102097027507026346046115800674220328195561332605315463134714864234037411770821195831378389801240677619350124368021910936353851538816033435154044377281499167687466361309964517889388614902156721530966047071692601060837033957924094055821688354197614385508561804361401823970294032193612809661806683840617778486491809122940739753960258836059247839086241759722687689338290018856802151805537172045035049342581654954714429662881750853589802904640457569030798673780666669965541560623448355432826997820063161664557171823550173716204281098794921465008026348712541475854889052568111510947895299457228770653578077365315658386363153080584748903446547405625512679354449525369356612911034278249459510459392020019171800164420833325110229988558123248192827875287510401603237507860978937869157277609157486764440136324243852792917975835060002481226966943600767993483831562237757236620415651978606587567921280309594797737913660242548280670387856807487709714487972145290360851368714705584677691879659435602646106448367014724838321076844406451413438584080645178328294395306367363107637965917822880735444292500972397718621394388013912783475585723885524017863342487619389500333386412501967269930087994831192521721687491214513223049930069943226537042765027945045123731810401886593990031880229680593659174936779712263104571724559549744586141555263985087103432156536769822190904829569453095371167084226730987570128309533916345238398350616836074223163466956169830838701100400314475960581246613873132359625680656523133471166184757447130598182380109572770486612583907193879623354281114775538684869140440161865293021928382704877662749930005221590576484532304315699555220337334859127280418553756146820149830905309386609841943158461666053693832164539827646176094919781462137958563580515258383864144347417641394803475127723651093806575759091937615463952876867461959233387168764475884578475679610564305024990989521432537207831028148236431152811320095126977870202003813990139052747423034648834173555520174931791430436954257202001230815034067597031573797301148987655582182066405299940887384226687520984870326476901151809673722321641047711588567193059673695628587279913252883242578984474693990351492086976656574607390253298622572702605705492512154528224854580857342292503537358018152558815767328204672776536295676754246579262182605140180308537599452663363870775618911468389839450743865898636699585041942475426934935161626603890207322867308864710499318441705112105758981934789380631860099344196303372188315784822526278903297126700954484529737058268812589870905078589939204346309932519172562330052209405346603566490683381459612403214785354772012800295916513056883601718730849800204755519997496571311766683864754740217660002884242589482287186574955722452473454453466491436245317476104499135007385043190547464990592749800432443895845280473299017109594594250401766828458239953940481058359297314266557837349928621231448083695736675293374029991020021652558355989704393583829048992074115931098837603762691066413868659045097559060420307235429969778207171469969340701690175159960652530312655427948589162220237907728879383305909092245289806237844231991347046717539773136897474898929362490511700223652043428365780512005125565279534366720363431756539576042177502977647034679184741748730147388493333751122261945669164028536352109928195390697466881839153508464020064302798258646539448717190681932211937344819812940612128729183670975423915147994589415730063169474554612178370132247424072692376018156332509059917022547235573293366777637872271578261775687978329993678945594934382748753788062263220562635581166466775749774756027586854088564204360129616779657383856863431288230949915471714625945808093811264737604118312573336700027212763549215290747817243006298069969683348501024634999135479576634118865275989350854379359931869834246198472082511892269509356670738321382815013286051727648653110514493966464619888366127634150662520989262341601927589134982964289846288150671135604614753258579956999870364116702758488451216784144099691513551607166053900540535313444251308064570708823697918181273255617938242988114004477314450376205763308220456475860449295357732274574153578633833536884673279736744904328109103107254083217099852846529868786894070399456940709182099247789661354304086342198248981734073144772572848821202984441785919276581172769475208219564292415365996072455091196333456745086360333943296470954567580938036389855342785192733000294023101965216275377407661705346082711897415534175587826221814007248753150692756772055042487757879839362730621680034445704909361200310914600884716284548709239092516521072065504083910370030081427789694462732276579276028563749543249223460105774048910439961925572371553969481715792597849115358656157908089578113080629204447187672210999669095836722409844863331737532810498121343131027359848243452767701790107729252743141593875839634551433562490429635069022946442908215917343465361329408848007517882635948273235788395184835443986645647838337362699538673421399537842644842658700669397908678493626343418897402609744358889287608019269848587729521243907063152962509397069054878767971119904167635771674996760298985035229497312020415470567098343419749957553291923831881999005126978439570360285149200165909932254652378286751006838295472656625281001600707611830582674689079451103466430289828032173228986128123336595300690601456057786338742770192102662761256128027897942496554273855248514901849604974498874107147626841178153396472570509464920107335139850552047511165954400390356833466219710776917027202228151523543357063508793950149932890970429684724776505165611262775911364554626268085332145636595087583296585856210317317476037767361960829024573287434961548091998908990372044995182619014720405481956497797163115844329599065215965307264882050806530850101964277110705211279398107825504378482670184910346578039340233161763446179652928123046899178767663577461709787888739569817384952116010090134099968197954571355918918200675800540173805477035931135106836102948020840727949738825524841878620428713169821059661504524089316479878761302927840430821138382381931107739593204752513486245879623462477728798384247134078208368313599800246345119924365623702000022620921790699982290855968551215476805379192162641305018831897229148182880935193851497367584958726447972156174868414389276980495161213466785827179530305160440016798310502525786029249771951498775916450181988745364100839873511224629596412017261467129533213316139172330263348685902123930239486961069765851246206693568491252146876989747705873065953863555767022907710605985726265552541689580349386833862195368213915032757965826084659453821747312025786172489791497570138393938294730736293189350027691501471412440243308919507949220497894518326634929840327567895614377387934657337344290382845974886374511651983459616305964692431848239034841016250527836878809300114672586609950220206125938790166362318077689297675333058074951534060484237762536783052038743656943656693121371861684422136463356082651971161650566638755271746094397750910363094238978433279892557343240747561265934533965967594116193072979049519820628857976417435239486626444505272172540421783395723991671215359339148483373856662277778230159163667036362812816798102953328097060059922556651534011764490873565744157777707061665622525259016465630631568215928214340835204378117602947546220445132947007257213491118067551085020663655374160138817458562595708509374295510436341013232678489112021168672170912010673882660183781264944838802525136463502058686402031260405278116025651888037628610483017495917812106556314991037593187209089601130465822539876817620904822877140478731658362410951552726526586147323431531283826945949302220554875258679212382836213043090589579536553445871552174766823448421250273638869252411677929456449262648105082234157727652698615829180056599663376381706346066537591512174565568872356896836374138031871977463642598775240643142538159134792008899134499776076637964625598803182456150129825384268964744746922234136102744429757977850437109495373637264440157549212675990999248299718541522018601251163439730295949949924513816162459396981605846976624119733244775555556445875437677748036234623423844958169404511177755760387761552716835815900661648647190377543752992228244757245535132147149477082890090357338986588759650874815138603549965049980994902559278680907283706657874888963057682621319956123925148905798470326227332774162543457474727153122462700032129251103294710846175491894405695107471287642213886248783541255271380850734126856455250541664656106070922601241926812081761624102728300924486361031279576900962829687681699199503300272623762420352787736101169305574278218946916438671670655366405582395380098918647716957942611585252843726837713569430154806152198191151150981041655409042483322975690223033721412944299737089312770804207981975905128868411556718661161867637101141553645098671555430384338196303072556148726943861614196699505472758745476639659511824591324616049746921095753443031964485887014071440224480586169765161994251190705633054301617291019129472932669467259108079576718503075026093784530548825915630773260704295528345349543085904460273594078736370567713265082958675877588523507782608645491255057880955825497279948690000464481383241897422205402880587055797901002655260517777086450922883639125981301244439728956770974965139285454390151275695416778727014282059402191124872647490086446284238708675327164598817750056297417379019585666139648590365828054814030078725652737704807607816577114074697348110156543800211737500999321851416834524602575793888069649396477279476778481465496855119550455738411323284812545076318934208550138627658811636190668035808680579525004825485649327971930762336954044026147678132522420534852805565220839815374076616622072640308774803987678973865765563080295495823566565929092979987803644101148191803587081745730683823364135215180763750712536861168429777447182567590092286130626047261235451501347181251289307915577161898402367442867339621198703615579425495459488577421137819685221835469740346252312978331095869836054677576856671718026634696931026739036063071740197736485981186052093887105860486103473057612671363823815724401645966753317554900986935690514046647304076210615634363672262243135746024103940055019465035129542360092381144814673126162279757209999913855145425046879193952669000959240518599598703960961613012086145685624875403853749823869718654914350285255699410991231831202953296287404031128211158195995589941214742852594374521439120919333929644444706231401448006895787226146332565074996351627351836714359630590211841670869406226843757917648253821440716117212400547637099595826179510496121317993636980456956985445753624850576966172141525917630006686137307261518752700737098648153619957306777954893744437151986972579456015730216196128359096301284586905663695521734141140871866269665218523790610661653511601770650992804640395652364430981915121667931855789910171127399281740674467774519675808391267567041726893751711840718405143909089075373097451983655256393863785079562636818484632798064303009313126227880613261703750916212519839239983752841218167826530266423216785908791807811473258647647977094608177305319630954684356380787669856195644171666947699802676667781859396427318111247638821014890647666153862368299082806626251333073819371308971619042770313200307000167179212852586565864814057599761654719218754475783589660101710261804990787099292227671030838454562637397115680270534450929110797633553162028816052056651536966447325707953246776612513491305807894344739462165553261953530257200608154169479276502042688470314101827352841618738233713030776260218044044262809034756698085980579186565646623494885877367342877876078228663541222281288150090059736885143839646305021338026581192018379832319587033152481501932744451362486313219090955358382310889431338204748873836175548020718010869854861715299317096110503699552216770104733649152879257317061076819346780746119987023833654284343248751833641845622879577213404116056519648616694670229443344278721050807880952186560887268909329813450969239803357980996279763860104218753580037358968241510996901336781357835793608940573367718089221812127416222052315636649778135083590642897056905145087563135571294490080985946456973153764719679291610037775767056643603810262667099640143806550230305944675928357390853180166846706388672897562840774889223334438087820530293129641252018102769331727026589948512175868921820171908441826083830106324859241659801365963102270035623004573471690421699687532185668982020624189332632715768477240189259203486060335358054604957120287105437628132888949405636079007836304216470677399773407827695073182599831005843319173710392719229076788759784466565664604242775160114316624549173810395347065675107721004242969546512945501158541717978506701826996572540847440628934158164228992492832117931490756095982299908820624150314700506638993069022619573363348585043468076311570376867845163655989686810586389896653520875182100922715328585277542035766489618648000148222325445237464710147430531225127772036006014317634903893622777403572846038025855671669067948575198148305296929227613436842605169003688220436917819483839712155481685724529015520309858186480533261865995463642731412910470091070726211460337850731621159263679416454017547073923911875803856062663502860722460892467806498054554256026140106711760194895946793478416332578994073414397778812060518777570880004973960124990382348817383021746841563215142075628523856323245766707024619369538440142096464928842912029640670120058074212314049191520403563575327300739891392843541621086067839992427704780782379318496556984828719452701381022848328771630251782385581150287509383285349263463129640484955900337724723362067781250629891497408207676370343986915511167290510256065734260345427139365332428527482985170700104251455836536924687093171248389149686224331508807635459431666338751035642806403002437441609307650717995406548413153163778707105417543125902240502400935798986143087832075971837735110797235925396741178554094745711777710108538063711881710849681787477952773703003272441172537539433126545917229181906760015083683969020608331988075657858216269498161681405380248761361005441772842178247154008726698915842808622513315248061546507394709575464736311919680699113017543974423620429130726685284678917584642228926067409479735632507720355665388151494642450748806185065557631153368111146207315410353420445321141199787394175793192239702964529229058747556478255167370683426282530698183406676225952156978497689848005670598034011870380685472942812382640493326510599589807109302875727927200027556353286092359175899925530427343710214361637088459476495787695667615320359515946088017248422830333659882240776685128557237282565476226442346322372334117370899743777970671195128428683399021249749880831955497525545878061942577410018866543959027096970064804516510569117791967985304742728185164425868696439698069545232127629350172310285959827947431066827629828269286809651969416583810879318983952831637765972526831570418380189408847546375247609907149148103781901146331179862153939726496797519409579436523765653488844649161029176999788580682861811427027287487016297336485203879148603267558642347255160553877290313036629386256471458377761600380821914035068720897643567496829266012748768454596645749143909797336230784814716556014463467995780359340217954103055652348787309565169572169133343603886248360864192518490009668663311483351347703098526403409361490139474206632336710362676911732018055943711285914299766304621468319769771997182734752975703567745780138940025368919998171362384552266847381522617945901986298655086262999972748289365984480531082745927171615308163799980022775862100782677994468970417104982928174461687800852756299138112151808435914327492262272231131111013627920220918222247402117786252332902700807293174824030879934100717295919172094634429264708367426963661744896683463035055406434616585817124575490397395916972364893838426813448513839841117887145168343846580014168073001678988717152048367888341238253288172630648525018833432429555747822274993010265315533130474806133824363590837762559706074499266921226947617516517251727222385394774158367734529149947697231830954028361514244340176233099239963842667382900282062599448894882065431286219450783987680701850041530672278261800208048463383100527032014594900594920260500024010486622429011194832639028936144962253048256142241098144562175464488184740886250714453523022196944789685097782850169743192081204123643196489619447850451341590415360246889421908626916713116645246221834778001263341093702603840649921340077284815393563224636409665421838110968185510585854597060852365081872657341164597650644519315067058768236218124135838562026636242564462214544311863812837897451882040140225270348764159784689280530596959649887700123032309077977586946016741938085157868404249198480291120579589087504961734910994083178989908119613672807309546139302314593779537940795150361764244205404553817823838342356662098110329310145286275885586832827157806261565324964739200543529312220507159201343427053407125246259857166587398023810171802426579187334840623462580894674537666297724104717411898894988611641290290993883809377407392871987773860694165634059489728732214499830912721284766210375237545971118836435971989972770317522544544032680455944208053653863291801583372344568917014145536261830070993483408174224730046494966965061012778813136736868512939327031176650647074392806588497765549536247245641540542747029160470925875359290848367552212397227499700958998891474279503819554442194161760304313416188320774995075456737672454512604522812194765412000610979300012766804893871902982091385838004641584212706556825470686794708417744792115420182129354653258495047080693495532539069794418969968248923478961708329964927338613935104872380372310193175287816505421598928490394555708939851882739174954482003572385256457833260134263347395667289862615895100830320856392446239920279627941362153137271534686490468836214058963033280708759434172645680566713429231845340035542444932411480024612169204122640171151094653211696711397101896885925737095771908581641041895801482343634402005428758104276316119266504508290246361406598864418570946243619278212308835003680785186621300685111730943750480957367160091861132708449446283192948556683935736016885838168482735416113983953137342199930711540047610146937023166188565570889012679344881918502122869858412578801206336857776834480993121132197638716757705965819160636678019813815072152104334618395272759430745856826864046112128344819483883886651834946152913998483398674367193712814105059777766593498450704126817175278640505067722337883780451092156308820961679870807044854204168765698729444328608810076892752020105144855132172929897490212332491660414043225761017714106399237742471913903644834897430252463772674233750118254172271084873970582283393469618301561369802790235867342949584569952618105599825428307443134668592966404363285574237466819532021088120806098475939239406234864031576856457090252372653366102156633247072743267917599497114633847018513241734988439146865715151926798296328223348875492852787532821133405478898216010385286089294044684484173045568859174580997757868608085214623717667092070041942420178112125265902141716989841871671719123599300919253670650146438967045610663209604417443888943038020417701386415491758126977277505039454636965716090610781987787946178606717356148993057172830622112390273916504205410209720749129464246985741271901541966010753333643663188957445403205111133768020926860540301283058868766165052852123494352824483350257453803112168022381507728078107217774325336418446227079494578137075027542513994214834451173382343274195199259250322954125079330312096919385998365872689832900702826460086753994652254687257998191498006321677868562720934025498183350659906862437410415459948401421594889406304941714796611690158245210362831380714361733404018237061368056344159819478432201738645829700422166217355302968119736973061226557120120468390629687511230635777165001499786728738379627582329898097721654155866220868182444082563793997454729920417145045710509682613014712036723638244540751277069382386140784030367286906956466854955138595129998095549475429636999907388484682847590247093110378181777296082208464537717678973070707806147916459090651355673517242262261087645730790514881772964068206576917517416681922474034602631219873423875603583083262432601072127324785895282829505486166159542737982016693300233084754461050908027345664378225237014256102932059034759802563636798883771336905878218066497698093291738787109558169028242170968520073403412175333010932384858289348583364483184765490541241728817267571465455357044551954329532114222740724431196097080495667841231325127415433206309453011828648461656745959777174827017393229739286743050734826092539998320118534865008390229627278698897851653506066517078169595528011299005211085021099749403378233238704727010238946984760072735987003350565808086643115621498450471292676843899266534879434297755762919443021924889008771019991054656305430847168971522127255081488511499778427854851137100703400891031859587136559672370579776462609275051666325295118698629712764673978592004255365992937705100534977525600319885233128459849205250252040267224632467022909395205788071537394721867442662660009816888289924688835109188177193156970316548665311813068401781785906490810048512804720036929880391588539821275943445813677271383901321274494193519776037506317950403493992299724777411993422808026688573238449961554038415554135996923843455925656288337807305496123801877509301245834633995542276591486197866127942657015191615768207710401490201742318372564279517045291488381029826227444976163823749355027945291293627708245232585808178854651558568520846164913367156816163611008439768921875616778397527184741268575736055056477648619522469260622393566481791316705829959420177214224101014817758443359996273749696512214788683387404235830526627775658528876043495856573248000811256459191384695165114916130373332188574983126650962582921001999912878167893667145171196035072208343685247319955538478958115793219641507940502371932135542277415009288580812045116153512565415341735466605101444979912496772317336538566810916814124229301584923455235347773110338333947658444151841756333340179314831377624147950888897254869035222272795106898066801299096386600455605456869199457388995509442840694789047037573676087975334526832905327405773963571004719023662803203546319916384320039262944832812065249042877942717961964043606268063234552699920600865216759209733391769674115882278494717076669326300969957342607937431355234144623614095410880988461342875654758577502534362480210481896233294897480200600525068461173065445592521125586964214243794758839791719701309317595930327986036855769869597089801974229773928022407397165576014960269722071323844884904443763635132243450490254183467421463891324758766795334300592056554270882485969171655970709418978180123121067357240400065077065222905509778807035505297094178865559917741839471379340862097115783126191333785143221524873729796367896153482035300325246244000032875402179761325241647226182429303840781464338719056450359433601847195921980856903231757613621811909630572471408738682895324844055606848544500515774165352475065282570802002800346928885576627916390428480666427232896241920468799058770927840426575077361507795990271959203791698012978682970626142095274804721581442366312620616166231322089247475743490312929241699669183950994695954642892004661412265945284024382626641098271715737684698487165208126638662228619909854486828812559152347117533347858764580232092464750892767835711684455467015337475117991415352002838160690257394637339780617838870896593761910119861862982855666406592189861383515835993977344826786107304278936625507126037580377915416112598865168248147172621351756784158365155534814656016020755320508865755748169128075830049226518068210774656879110943295232053837339713136043577348267633419492082723159545587297185247638489596248246675289796613493104631269261351719661930211143935855529946821841793595000602399031149196925961993231070177779670588025444572929472326766804417197727026848147665726443355489076541702795067261658743312270615043184082979490196285998097332011610181760037868287765320360797819766034257495833353554429254077890193656629916806573216268329330354226404338096926145930754012315041604534595077578852056131536552605902842045940143020983954479763390054095552668830846863662760364064304552626252475754900380387857196204773921186479656048814001284549891625582526856549684328463714860164284286629472290105693880185220123269613264773450060435043194766864898963409507855463087573450101453053954523400409799357065676790288625321509168478956305328265545879953078679417549302729289766782876875405682783865847242632344718335971958033000354947422697144297515727062833086605834898445858274288600764021123610376378847110433353982149438985970019066629978544390079538803385438932744769835470549968268957191623472758663895467305754301770023674078166060527262126382927481679097190835030820211097710573266572460348640102653361825088146131225172164362656600314097719306064787008890524008949181361395727369637047979208585391933820625162732010471196107539001871141208684701232925545685439237573926539644193974086163557941886939731012314342437998333226117766338684908087260597331167214895222265947654753682586094824201952370951268214588880802145732361585640448504210561881586587526421747983000467585060549032594290133906602775362623106550906277473596713095147398102639848421787653077863705131343499062765901900438145795466682751071367539581995632626655507137577120921214236678885271015153407013685316009851533641537455513840334355430164189592591981231945088738651546242615938184220357954948625035131268311560947075473116220130338185036978489599282746242999694660023295348383072625652088866369301463569878308083589342534903977676602308209272271894767490105619909581709996087564739990650209163554210255886411746239916446232648804956358620524127466100631924677375272739559524336446031863253509338331847556616043676793766982534025765070514315095264205981666809612065843997334300750630609962051163650525162123584432072639351576883041675383293223490452865845028609373972693346164445609136205998504897962793654508627438686575520173676296661605201790883998940251739146526781630703473395900874477100918448998430745882706797454201665498737709655334859050020136496348996156841322251875302027600723551282328754893460981289085781202365653169970802039864746454350557247572113865870585726656723532794671697060172179161832359691902083547820605105967727180519553679561278360769830326650246795830207174850028251484295602401518465975855218683708957286344127660944882971654426160927275048728506655328465271276926734180176545613090991359554335895117749546928852809236837928510052349000437235312940542511260279010890774420501490590681094914369095996629493205828784253335731806915220667138960104314662168022466473127771206807621207760508694259890451033849980009446115259348983566160371067494458935817565226523561816403563597315710350604432138754182600859600938353467887129279510931224983179082101192468249264147077767488275998672762125010718885504756579366318576884344464704077475690814771451771762745915610640831398458434061919511339889682390637920940370806422571694007708596006316888030070927847373575185790984887143198977494472860551388024719394665206334006383545969906076364629257028330851835729451586686611761881011175312821486051236670878762256931678876165361907927320816381080030804677076668766326890525151637535540272053342832094718415247981257269407261860447054176013995745305245772556956526392595764033964697256306330044513893445224961434181729407536616995586737127336698741459528270007234764353884164824954942645019097638855075269629271958373832086382534965588884437267211860333161595549895775252617843288972542125449997307704972056211546736374349744767573094149044143290437007046821976686235952579894848982646513468627608251015341730266119554716159208212448297915082786010580106174864101082459961362357873737317054107013188474443697617019421249160283531948308524019116225902208297993006274633919327030432236118527457878195318926584440389022574216561025895975821763818709231946878376813208302191802666714427245390873837334952031117224410362435383143025588668807387979770168407347811755397311601013605502401942011167006768673187570925057020834563485019363825731363378547618247273950890139591739611158227585611420690130383128095473743071122554577613205241261943846301930385485940634610395209801251321834208719302952823276163783740476658230464290057068460365030735207418987683175145833082061682566460949426879741293273821464500607664207422809424844981481243534578190593358533938441656122874653787073009440767033470320889519807149757866748619525580851032822386795670238592349010995192899729756541199665043434711605356421947389667265442597093911736092851480851882529190270570058782850154209999221700664244678265015464883624126756819444794266107650229670247997490014022622605477276479307106899497615624891825256638934796278845213373131280964883272324432795984090225029236034419272219097319138976003892832268883186147028804460581509354036975909374729528860841037404232626207176225378009561266189670282139824983535733463497264768593151086711065557339566269338902526409784612398997433791607640441806386272660322037253749917969470211282102009991332073239080554052412326158036228534086178218023452959908258539710625170422376524598900527539087191122170290798268172362165124542481893897662973712137214937228080810835285242995459182020015392713923001887108811812949061381328710362742748727796695465646250976809109518899762539950379830301050308471134593930296552263630376566869052466662633081987561933027959606416398873377925506562609313732198857071526886718350738372597304606015534760317964665799667761293126003476032482815642924547876848411543886072788154752562687090265113167826110286275561050773595397309579266521166197240988684143594524121810648519928443190188493823572213961595066221718526053421023477212520411273604214095550402384474707367635161456178459174264503275958790238971869745476667059382564107255415705653575980598628886751048093677574656678802983051434752616350320271795726506914505898439480978980611394739912462640242892868053240878503876307619779502864331563873240449740456251829432583712069195033539785854076440215058094430362326758872114664040884620601935312253335504717352670562856211397455951547572643481455178944417646798294796431107412345301079084010841309323616950323640490200658716977268802902933557576043117130521241812459774656456461096459978081244110093733160565364872153576120999588942281691472840568305301803136429713928467058532572632742402081812244439553306267622681644185878490236070791900449110069220695899388634691681337419557997156298480860580433994477734375419364748396250302356608008955538459558161654148438063865892140807343504468630871132721693544123593944538606831642176230416638569886818385828897437569442545417872986099412554408236111988783943554658785150679828157475430870706186563831267418414327416469427556478364914578170211068912899840966089818443300351648175493743191994792268402586930524618636084526386748796308233369430797386044311614670941271500268103635764816558628355079228309758310010668294185293370328175657218780395649352056370152938357987930575861306627939935131886256101536901554781672538028895809456589794687891173479600516023775627257827419913450887972754857733731002200349693881106052797992287179838552810178075766247817289738984792536777976119344571564824670342844753599857594716369411352611031385484307452528523101665563340681205063107840920605304726830980238086571827294498626733135402029469767759211163912925133406319898834503632541467771695530045219145750089427232483947592059603952656613733283527423589488543832764665544492347670345463196633016717300102097077708645089161424282553813648049699721803597038413788705744784098353364451737741498149305255907819976860629091341839824080020000314969785704119816368455571729933708296567153565421052528715942001387777903996566697228717514689111950184154008389176790472328985585520551217652554583594276771292247259324624664041909759582572335888222336103836471501604821406210207722339303658178573474789340486770964891872385970022587836684432878347878776802095138467587642758998887881132808725995386737171700704788134561440362480555268575353308718255354753796840355378983071317756440341478122928286357455681995586808681875487180613520022293282572161422698026165229723607654403434716970154731325326252270067566396578250501006132800627782512352012858972204279496607531420432810998679394974357764843366274031220865263575676864849870343779150637181702561506028028246176539993745151463505491786397020445317001652721803648640346046749693004070516653582602003079898791251743358777360650991294644444408579049410513184503550624414046705938401157988700958640550128126059321009232690712538714615034006703690750090355588363642219487469449136548025980369949809677191311729315023791373100209279298732644223353143474280100599119618853529032968391976596443214003163365022614050964951580373339822044223707781497554947180147745504249394319443611967027693683521043522304447722859586924445784769449529465315304667083300936447450702101336039503128144917162071731563028403717840372409498231840710677344729795997110029942717059829953247009548896392413992697211002777041184307567627072536470810918652924936870869848314288650239840825489977672995049790286512542496660328197141963048320701104673797323385719600233357671767473333313746869670153639529745893878389978261958122116316931410693016813347645142349726507463434955947126972590228764996345270218312227384273023745951188850809553153135386638307503517806385938589683786201982087560586980308525476949286722457732491210252668635900804828089319379975216462996756605237348859435416150860678980806466087639000047788080674299891302666308906981048510117981480983820221450392262221128554600966667288596856318569236950800891954423212178225666600098604587069126131388511767862572577549505589063520246494410012243506521099835690832467545543314326579151296895347796573777464531521404521866701691613322030834415609553981219125534837799569108678342897034506520920364909329469408390762900153620733021088150412903580146618815777384190378745395688858631946385886377111321104450612255497340834341941270706208324856887908327419767874023056745264890786047317658490435542340296133492683890387837687692249231908844832368374305761447560138524261568556860014080237364686786113546957004457011518783026643233028906161392027775891216348613562710291035884305205697486244592696367451419494792738092759440162134118990519812283467026179558689662134467244079037634952240796404206741995635076867057935370755117153989119224910694661768807968526147812134001544109230248200127388081398152152475237126535273733109494248974444635436285943199303503617891284321644566238399495455317323708976504395256706442007027877174065537686043070170602716022578146517900946842289992440465916944996282133480194618233256860256628546652576743681561486098891542884446700701645510949462162830361373528248334336951255848642349672524312998538107059973593653920860681631107547841686073645708630537290862743446102177000614608514988047169272585084776128336104206935425849139629032196229296121335080199364968094866744550822447360863408970646526800009897310918367333646820086208598135613149334575786564169426847124810010898832354312826397016762818189289555887304944168838534491476652335552563945483130610110627346394499678333722143982525705131005693621161264141025088178091946403806903801112170157007453281459032758785980918235995083096925998606527420318217534998155371315001497662932430188582137747046816406376960385672585414783479870839526632126398931141462844851616765193945145445787227260853806311449579671148494755928140563649333327609748315969347586492945182059348738384080889341628886472832643386957723097017341377465770670198631507866454506573383651127242600085242554182703715666374325529477902702637125380262010517522769412842358425598899267157828412797260013692931230807747564514110140777143341032239204824733424855723942941164930995942425356293700860130723189890995672183717898580444129391322062801572648504301292348587673688660567144058137284535899060538564448727927999078794774666545069006888245990645367440119808038028413080250363007697891155886912755370253454699642376651826179371689799876077826922118966974745017700796633401873917609875916737036859403384632272281751561448876077657155960715419245483429448073965158535364872435752947565709962223581314624892518876609017931196679787666741623857144939286170118617755935477855428683359610262304988588312253248230019277738366116121257758029528591226024936342038008305070511733926527733169751159309394054995713660522208149861709591399526198563363798312754335696542033649712935244618929348518380344287970885631870522894432920666991926370709601922870374583199536741699991445719836222535309835721450086582875276595340260441496063493440391136337712192911736500847425586291411548020471497121256941893841312626338016123971597347947342170888975816480402439151729924905887639466842873105468692919115745896714007066860676307100230460910096209610672355890885518404335469300201196942624488709236231434631736788971227045413572862328112413392691732948642007629725106622162874940277903778225423050761672344032158403672737636207133452092087608700024633095213413251940380867055447044772489793585740892333253791514962927519582716851697009796193708701724594554663873488536172010517861834983455847987503793845808050484115941352557524044451013047500775371983909383751867657053685074883921240602873380612306896410603159099610656565869772182259899602430731416090178464324567627836470893633647390420111454427809646380547669128770395322662884737773440703463472882194524896146319483761594461079485899773718585998059532272760027194124408253342339445674029158922086771235564701497682910520122709666327072021789888516208321307621921295524280246849110333058568413945126091802755817569167484912176944878532390270760694116943543293395135899438225228617780488662850362448310570743943132459704596146049208717734365951248360579982616768166371837828836737402461901972717707317440513366158314635203784952192712851358585795508410660627156026192832877750868880496800253222012892714843203819769492212452297081196325768612811201344013389767342112028032951828569561472035777846902069436617616671349919460099639884644435532609018752650300533512308305720235535402676198952321297077622258917934997557248591670882811681122570624622973875399974286140924968181524720790925758629108405952310719483052763761656054515847764895304326118287761170147589432417868334575833389363400690679251640760894051612966430293829698903812793445506734919855952427116009667417210844821641348592714140271229252703395983631600685819694260825764993615660020883716083124904301115692106970455762742925372445346726573174653982342983939371614963989458371226155427671299805051665860549729681724454336707198951020422372059809759213995797992303130320657284233178875912510881841645296788164149578381773923982230787643060146726787776570063832993536175568299407520604183642858012797722127862077014914253120256302419075263647788428662831325107584250509443523088547643422349922406880955231274976009640722817248784996317178037563628885536914289977104621324840181231784961830851886841391340985207717551138676569243897174365153956176528633625405072846250521650687158015262063954118686833045743261940915636458400289304458738318768867821238438171907440601582992021106216010988066980721134359155648149187030463408574462342844850311609498335227423315651664667732257856232467997488993664980344117937724615932912103682343979418555291057020518996417255705337426788512329637421825601092582127227332535917537885005071665798586531837653832023442337504604757773299559115356867099310262712463927275347800085705965059137358930078332278222334391117756708496587075099482674461049762254272291799871928588527129553283717952817897918152397109552882891200324496886736944551400850902081213180136492389734578167420767454652496513640665621477810356350019343046742212735851038078654150402395219367245277508600951130511287105344121003809256133184773840290805581611746022513418080689141937418664029306466869933012656621521177315951752201413376968374318645140172248201065212936882178338970410924295355280435922086068563594435187184074715755969799288233818299845548200862059238862095145777850060081061602955709128820406891169822047321496182421260716385542876393091569130790028266285613937529907624490783795281176682902935342041479929015113427894012944925567991568019242120168207323759822364195559326631221365463592407606502727027016089707319614006207962163469526901014434031229200186687114996426679946032491727952937522145880344537462152235452844942164945301815032175392445706874146566339106635551130905014384102424355948354929834879324774709629434570580483414899515566069859426874662550798616910170205393572157036971376866595762944651681797818235687441790418456510007873095295630694166928253559799268024970441221739115056106873632146796926761168946061340382539158376293846985515543816001154596899241033934642040179000632555502824519969497251041115826002670746115883886155025863691501255866781489029508978899088339796872487792838077030650737653637159854353106777033210801236966818285645113841985703651242204077433285223804702242978664077218243378534149617002546844975742600555895206038855126171839071067646873269438815253618056575806568044956905693831505469201035488343004455424355547943911219158087634488282556392444902353241938790688759724980188217204998552345554163053448474429550830027079120063928737964176056882935339973241644218086286564119265511582564138040838296494065925180184434823739823729614440645849243720926782976054424895098583542914644978055116307830902567075762353042862688857241561122532167577978849136635552269133157496493340983863376773305709392541536934571772925691387675083154156629280430767214145876759357713584033811243219440466429576548009538338996735952002720136932783256848532050150618384947624804688582153601904025320377624999709939801545371330415759474525370571766260238684005815610162244067441344167959561825380732994793892563526434055774969021506025134360964559569043607144233099228898842481094520348548301887871132679332019928770719617437617550599606089380023247348340009194004912897431352470767353133211254158223828304217430766403384059876375931164674669595294437074336073696353909170847885207238357184376754338392438336692064603141320031068555502031123687045316464389760709217055648386610539398603884134909951358898012053304744615049996194479259342946667496650986348932334805311681925750696565517370106012539324198299319876554042279261778797254346330983692935714603504447473373341193386358869352782608483225677049527603673933482591979145427863881913170561740965963047776259749648691807033980087813955551296945505610442430364824201251203449510301854591933190894607961927226106025434463273476774995608702429670058215241248058514514009057588443143443824061200469584764307531713535928714680713626049480407014599448777404269912415737856057496990950131203523831711000186570066704249667040678325296473519393903619324704874124698737342189752934339659462905493295266796766112948044668347233917432626829256992134792687131663284391794004273855626314690274053011296175482742164309571224837243343907667780599729026260036657712732618921722424559052973100902249634874066830562512283544711799680798066657555774378718289060237983578309983806125042263374474545606031250713704173611561841659846696420325194689042874311772835433714295628032076001889917651310612582023583165125366465290511631870685026750767046600940247630925381244783676028516143057195573994457038707894237428054100505389160669784274961354199259523223506002981033373590641422457382820997802497889666397543606503332831913290993618715756998112672394422985869911003472785615848546472114012263973073364002885390938258433253536877055281771635172960362219978414730702266477688567415023547445336365287911043955120405823255844131642927202014697581686491913777866958800330536581943016532054724488257482259448172964951511880514467829603970989016280661575898268850197007749594933311016659508712944360715081584571655661623760520102816553449251659404201812586991552526882225285409084236290098503690522506736962951891668113174113229127937181688603426257661774259843911401960037529850768494549934101447066617527841345436551777829082700968597521163347930970084116126090925443876906048679403971624471977851242748976186943387596374738949024287999657159364266704619654201953488411629977100189040573199937147483187163574028522584546555737089626913501636466988534182803655999837618569214029195602180995198131616293187773328544491444042871092876714195959289488791980146814246436944111735445518509819821716044133219091972062687383857226998303232865646291685696373639548792586912362729444046002567146993036227948604317898356328393434046435293122021620598959201840481048984602476976443189142570793018328491246827859242944088946288437942415772631028398950982884529661016886316461100110879067681602975057223366987230191185759763891967048407126609681016260530521539184804890060623845304697039042061157204649429376946032190482563792366710694240456278370389403357864268651003105403782768364199938862836683119243906974670184776987972240713489073437853614469182126355136954553683426567737801907757478478926935441340510899989957794561362217052117077188212452354549469701294426267301641243355968849467516540155311134956687437230698867575263868698701825583812903529485732723273639157030754076478073748936071728982647456676791969342886594211936786011130159318678472839125063975110327146070894391553978191325612419072811834040162908847828332659962747827694878946341622262666228195713787930459137171216809257085625745857670368211735612692298527315757515175483003146819498546582897411693626356670900981407896790738978249086621893362875677178656794029073119186687299040367871545359582999173249146949033247547561388610229090254718643986176087931788020695791071086928164560629141615217864445632316211857710601507597837934469650480100863206934755963086933507205500532294123138606224085396182546898234044420110227583697411428961612128842070437034322918998051803737197777152927317354715000434312650887923622802583071108858851298605861970292316690755085631355289089209323107232485342083241333918616233926333457470625194248907046606379334986447786650149121194378902031719340894429479686831024910387644293577934950197581019015569409101243371467612959936962803137790522582994443823103997892770862567527524637995718453109693792274141867891598703784395973956709234413318383428253300425973782798253667305964279558782554767318638039266921083607383049997868526017420950970897950635211211352283716587835093070173685081477105984121026603157075814777147994245209662003282659193548236882059524311744164577562998442405790634421033918358309313664313558686879445497648427689910851565097906382503310268255527248887708732342544293476265843803467004269723515831995943354953321853536057531923037016835823835546693296991389386035311942222347508400048964862437469849302334966089534353271287204638399953928312633697888569079628873996482298137620749200658425437922514219407735234744650013261736423319060490245125338145125754429299762406700699616387540296304670554601592497866633684997749604395439902211062062533580296749838388516724418471934661790582106024358864820228513341929189277701962524607357674226653317650565169093016451042280683528572142824556640897622193054605869175583917103513699772427613104482442680909678147238012491995353389466081191318714758443641115098063884897845448647207634433694393362322778119551393297624150746233208423747950907162357853637454730715916430414434382359227997450847000266423398193810992352437104240188408876773579413834543105600150663226992635226558147182444333076049557751335974296985290308432536809347966667518424577478845615787229507092601939262107280228137950194282412310788336467682516747006987018508498175214585661552403232233513856816580017122532708786038090425308108757747550903076667075981284662243018484109256940732415341643395978737120131605620660030380047140971504959101415344025959989645891932863238580152409101618076910406525574951533937353189755663312974310625726318255798084243624935434789671416996627780223084001578075680109445141714355335005459917741043305547825581891637725361041860643408055086309752868093482119470225163623951948043774624039074779600514341956636673026130132237763979490151386371108631911566677441548229879621106945381881790307796717376033367612750219411643977697203786871385079682121728494973862507645166065114438321279747465969085828778057334652150092034096260247597229538240677819837448163846157981022927394440109373661831151607429992810139280929465708393764881345015770026945577314220222112877178102928555213819399506421851092196901147432768893496857838415118579294131556117118910799506093928272447500282234396282669085819718320986261515214201814027574311251364295271432702788570405527568893943353381193181212565034949594046059177370535331378795060054796511590727039860539576357506430208442875077773078708849772318549387167319054817613959284945425197826283319125648456354509245178367161209961472093615846141168195599159788956009219946344577176813203248634766670371511703418185202530923782865500698900349069459609630184766405361683013362665157859860595624410101316483581154828353187801263529808405128526858456853532523470274252636418200203821440631710363823322606957377251849268416138153208444293087534310678847551747184724672260327654276832527848028595325492589553250059636019325837720470723830279400642454529058073186020549111102292308272685789775652581916007279219664260973216029110981252261621544705313510558040285854426485966843638753538308947981216885862418065298624956254963352069043288973654286333028580122016372223032794619104786433794856005721690439785161701138882039885321252188227154391022958754863332192674812291865300862830249683735418309911633592987879859632283793761831425011325453789861922328422814251262385087991400735548617768029427687658774604563285834746127806679096272914960348817608507570782125678726650378303168476873101647857655462135520438154926415446932578073870302092097647875481964686826174439945765675052081816963102109753734371257168111284064266748610789303032006776836817142162283427137467871807422514166436443178205487633861483957423891617904897642212184622121088961584301812672205682521746030801711618991182987920425051859833664632648380489074767458393282806069196657729840786217957793328544060530027089089263513877996518690494357147886320923964100186352181974754836812098828304572369301325063257398984281654348118843654778550615536375977626241928157969177032874221033848553348799506935630737650160066502396756978987019901029450536813076039096581814331289644963504883781310748474715932572013711055043326557968618856536087192144982928856196138832058769506368890187724415850014079560913125959574046656070193802634326331615441816259460613621789167545868032563272488507733685326910753079357352741140307924953593464812828220853151641198616537840216232370472850832231573564191566556787293603707920612602711854886118596807289856100031803738056153523291309818125128318225796542165431180500685774869916313993393406775026001058539776540259034610022053049281598533851331040023909243837122799898400128647638051965840400877184212678600738720838452638155979282522775390070767039257413325465649458505399678836185141182246986831287880884606163214182465026039092722180798295117231731516838350569723323015140092071682179962661946623260756498734334033558505722092567525398450187697074505303246767443336304359495329637882056947836811462355817490780475604064802738462438624042727011788219210205369773537089771252838072196884906754305519884792231924162379177273194464227711981896340927030043354503142632698568899630173916122045736913922697567659586668981110327706964896064851402687562980830395457964593810322049380020472804889027686954767887792805690018531428287069480953796721977980452392931194577526365770766772001807615727947404634030757927907670408967994086276811089803829012250682118298423882017934227591549618157042002094954868545492736546818006064698399771237596472222956870312485520236164847250106233004082808254041761310057798162029880394593736716280184059687952963422076733900687461000854749810742735762408723950147555556779994370349888128197575400967363391390480015661903368102705122881792743917781465056607461514417391872018895308677799262803900548067478899366832929940988390081346396673428201392128725824827249344294209741232477633183896952588350923063856068755318929058738403221864412153890626128240661756464896066517980132212052855766266439194188594404990457441579703416560147248602160134520490295757860267763921948236782671860468299361180766581410695862405831309025561833048028280743084370066227526723570906089929098037828712100215949152069112003913150922467711845484962766667218002068772869400606901754889369605261668411035970769274716695761626033043268720323699135235128118940327031590849306430049763375290481025428497300454175146821340976986013791045284460807204664826601787245283755497528999435245936775427749376257585471929611601218565866524187641355521931965857741900265270176742538912697518184989288582310256790256380046987235735102926646598512583164400202610496251028294996638883819634593170246001359268479746604444185984091276390143529355888112026442365297222732275619309528841213159762670840521647440897776581445918837303088883748571777336686835684731690228103587189507359382947887139989481077397834036517069958380918375812389313103744746965136437562939747469221613707049179709908709863945181577354630650007859400288180959384548534856253328850447194192372915287891623862668111624034072784416956745443628145339538185318624318178379205186071182667695483128247948938384480207660208781394908103516955513389960271767152865007165516857407195914845215662169240697842892449229704889115428402008235703390380762932281346934428198864701754093671655340689942291049235370645067599302397895429409496363462656448510352626331014978003995391727320172172057510045316488095483369705950290456935528128227878332128076226703555896312774034127992906095083764420213261162415044290989949999959991444218225355927975480521872227408212945579236546026838124786621740505810338605139073451668406449125895980651516628854105681867371329697158932583321717705439236899518775460197257906433674352287396730199269772914652524003219921519348059677781921223063067298109961573557217564164091279044758717175062793110019943637423424277498145403224140360812700985522993859346026716809551257689868009277527089317016435402829896004293504001689808881757668468449159062425785781502275906810837565068317920908191287921002811759239820894401353527087860439689091721667883807837597798681590082756753084429546015882798964503124498755906443016131390083633066708549233344553170463927829591794775034894001280763616269732224391603109382671897977337594555020742560736180012408668251027968319178443732432492462819517013879890234343809617783460005254049656380280521107150703342052223889156183737348947161861776405695157862740505886707594436208986226852614826500042378515098795186486954663486090450000805991085622846718329173364885261912015063624664773383289328466220625955140891248522337728490477267844428078301597144034496354322675227392121816905837996400215833325394224428260910462975303106956145213981717546967066004373885058019877836440977671640325873315933777973871755802130692595346463341403494117287969427062451389449117367181000301884313516108015787880273753955764465451582882149874327573232032115697621451021424963210627213524984502827015543233580718088028382859268616625844309698903418284013130901535500571390927520607095879378674146923153780081899432612980656671390179845025827705709587786329887839788153623178377710326349286343876054503587294915311353474895172460549712920927708310986327304882400727936446870033166341346229535448291138724937242091698475190453157945397053484051111902196287795926933178021605788607785367644925110853213559646476498118351616349508202795889979926524046335189082113353843747586470926194122487618287239204139006876535065130259447343676970373795902116711565908235704993480709654690147583250943066460250082485270238595719703036815760965511007208512510301761506763843266167744282569425499014838432060593337651487619368094515284824168795488167064992542181221512005892483298596819169308842406423712593534564089920894401441228102352396076090412263182647259835989417756183106284456515100095573511537974250681676177771707945517876351900041626516993926195091021312014071222371768596337045487990995312939379758872221599034629968793710459624096193277114959026742328755124679641254743517750868855058622593088039625135376656122128139710503894693199276404258695814865953385454610858878355836272812876550502733822010011082388912433588410751523824093482590992220480875968211115932581594470167891722699500394429817373611771374336817789168243516564132923561904277174573374955337915843592516832127830590467970974087389659098185048866436042555222975148578615460947984117146046595695369566511518287259137537326484420929857499200729092822491098119706366060588048471260741930154939124157841627484671564577166689677212013853080249825430753572441960971987486592891755380072085066233296713296835993860869863262372955787280785205659859069318654332057303927841904804990805353714258937671145689468659228856814428705988893271536850529916348537451278767303294959902359117743684148545066540617522183454150547144291269389579961380213058406349406796596974440574025106027699740445006903968152048700777752253127359141409147456396088025135773723818551005459589953918768266971236375410932061628091789427807630195890867357819115807264682832510073270829274108837314526174258948480155952740784555644456443353723920076569666825213581143982295963497086318521195378367905519559390294887836034708416409206222372469861849150855091918371971586751079168084106591350058612917143961492406787863113388935091094941257958224031786805516046915488851628334435068481635700391545780135513623852013200172933794950995642753214395942057859947147314831859653362111035778131993865829949021401833496065798942058746758524447506134174515722888434510200425716763389983895031693252544989956583601173685723557662506303630217788991319931528245760888366555586596497399319948857998649944824282780464872172777369274828975645457729210886926905015899143644959676910935507994635528052863663629014146317159559732036957605386470841831852431909150753149609566425569994962431292131293837140450970428885821497187118622888874995884585445259400950688544754980946996664464457759428339554980980160465249610174319639529253002506961306137147449074027811047857934770685671655977185815384282401842258032006528168004664388557627191130648893420350714720567929409259977439234652547764998261342968902870596747730393253548136008711949918639617522659776022190918800345589796199796289322974966115504730234274921817873397140947403138649045482284308075529787357898617863707906286950722383098163616134171586838820777119070632378531033677719349070654522174923981239621322963148717898130257967312893956864157181921033382495881518780942088249061250407369500275077977626692883604808971133401935587820003276517518748744314726505660572771897676059660772422540171421994901691707752436426485149769253544209992857929904935852656437781013291373255796552912746783140293634743722179383634430063423807602905070145377936147031264148674393921281414462789714123218815622389645189287840885804565881637376950471744168270099274426874377266782288101225519333288612730542622381312773522296843720428370648813565996575488369600250838805745668222188679620370580161475083368504659955066473680132093457875157585298272367762284792318188158543653077464076332711292898850569291576488104207785541650567262605171514844735710305233752900697949901007779253222290575929681079802690108413085379764854836439726057317312667132991174659079228294987301087402290983252981025652002725438534937532816828500132727923316961823353506119168029648379380014113190544123844239406048646065781796989736579249390325985575139073751189679839640719667349268932605565825321430402099897846936613361027663403303310854708327829867284715967850239850094339364710284444046280339288951830988563086237116796803706063466101499266520884520624951396457204657457536126896134432028631560264381349171721046817722189678696367020352827763075578871826274975528203487493880612832007128473870423941420904982774943137535763750748314878632509981023537115031397469408736395682678832701222159686137116860896901465200879913373865816367728725603493369365441612886409104535036168273794476150186495376564581061310585680054254333782635842441485366196823256118083517187773342288597359863375549427746734341626076302900971620129812070473868775268433835312857834720674054819018550274661901666554515527488826429310914493759592897693232347256647820253544171084703698506852364907981343137873509067894563835345858701310288212119134642967883216285502863824784094211051909299051592492614483826712542866932975762611170486264159248803753413294510978904661871628130987523611484194873020947536079159735294776279109015286540997706645371446978462717047263772616864307870222952583071997199831310892355503648248562983570377934474701789346456068661479338697257862288229359601113198022695097993577660856641998271219958973710905139705270726655710408482971791697616274044685844629655120411023742564591212720548748339434502206001761822771325894352407259827005227284233543420768614278686655418223090112142847488141583923622333632312423877092035515537622629316995720916968423930300106568961688735378272169479627615420147387607711512219241731843695119040683281125639678009405340340972966098095371339011140205439556327407345881859458874463510808433785344718688807081550055355198850918927695794081020672127286233138072660984354334793695542451591957781955159325892216198102516816099991680119467193358625984479113930765891430810819822274027949437592518872487336352835411260469812642516773183555491540058908041832950516313725236092004624950339697583089106591505969800625815876875491437721082111617360237056925350373131338615013677426962564035318524890160995305922227905798935150487227537210629016440653368686776019383117513447835425040102220422275140651174855312898867166949079292371256880671757861469879844111596284014188276231329149842613598659864525146788846907727020419158502972604057121272971863890058352663266501231902814542078964651445877612592221717012211079251756078226499475664912681988726217393170155453123525068923045925363019843438551177347645411635927194900315382002854577346438120488767201309532656450405799498026717127122594520973902303495320347140891141426509515646468102128216669606197407347863001740351469583056852884898370896095949509475713965526958839058820779789958501270087593168730436912681147063222460978339759173974568673572016337669137985383941499277587857751197388813373921589476928657746850991179631292202637684308933333964933889278558974943673020327445352793825878662393297593984432659448089867052712566275652208025356377113434869574611440979107810017973439825048075868334364870847072600632818649266470589468910119056514910929500483037173331750965468453919687562388746198664391928519841326922258827867086594212885352429446186990278245639693857314312518844265397327937377190890944972816467699155739328604595565290436494336846188894917201648572098538283177683162181523081551181639354424713868981742515547423061830561029212117368285496144780929985124635793739771864522639978620437795270171770284522302993943524584120198869155620383529565247504778865846821882220380005528965375537783476688414845109255990865575178418002920690257635670194612990535855328478895227411202350038364811575972948008526308639464275748115717186484455442522501461441038574811265195187695391847024209800977556260051752209474612313649796492061272892353071270393207174491202271075335526726687900504495550050304147328187089934275082682812242316521854058367597541252659144109886252250235549302755965316024581908254932175559805252647527936812646990090439522966242739783022025338035233534226879012114636352074041976558957669774933383258044466373054549007515570392092744707893687641672861241162450203221206863868030021026824216732254885231852721792350871441936810244149367709233927392047685443660583025725915291862224382109644121719129282043257469232623383469972566407896859617512976911103235274009259057480423456925590400452889012808296751337402248507866573799725927520852023341746352237481522648866140865571464320136714209741542381458970241562300343895822505445382584393829022148389442089637314897481982571877775792329221766731879118393916937064102614915621338050982406168559498954117040515108984203075545186697533063083116937726287444856351895368252991735076485954986205069816419304020344327999509750885999177988802439605603738901798294376958149869511216639116054690906271176008821439574912138991859805055825613605192124938154438706359732149474967322851847080901468771605850078542857909957805340344180438113069354107208265786349094352832801540828495466137522738480811817420833572991981041390874871175625435438236585447292007347315240956569172320634442249828362979343160344455106347856521112664389364398564820877589168627684897182238922563434885335211201303490521380286772029595552017525417768183208807445456371224459019295534806225452573732022073644899770106966788645440689313088883161526290189497225381596578376016082086902411496980873425235254803668313365865457210616433155038398606010252467185607019718957558541844591489463296677760115631672396547335452357303392908828664173716682556615272596000085237545157249707340444064602769228497664108195647466587794006322642886870008812623422472871698319390795818686359403615684149211820122779313241109426170374382386886545567168026278237063892593282928114596132958358121100452048884313249265042070158678214537847017725754490625765497701605301589807770643589328006773858405614471430587233228231326554357429414778137419385758587291706121972144512057808027783203302066049055919795538155319070934504140975608981957770552589512734591998971383765699856834455431392334321447362815177983615178310792416624190849199479014971889151541244517676965641273459864315998256484244943356368509843356718831532808421721987194557407572899988866993077696677874182454758105509285171363812383394252045761236561063050975717767715798925728177950409849333701717195974171722884393963390740195602235473164280008755590101107880630280565700150486318644085161468104288921193871479984131697960572196825357943378675314317450613320583423310714212835598810612445324001420218071743874231720793324701530530688532121656593722235572664677504626189556899386579797310798797989851935464714706769432791762606149232994129376713477768641966566352826900948085630860566941552249536665966034368002433922336147601329370755765414394701460945986557838036669299493223063095135253572997547743507659877311983588561038614696817374270279046833339855114605510116087926232132086861294703391413622837769460027304337636101525558753225678183583397547727683311978093877582404173949639106510150108433259903981142031504210663179849789149106736397935577870925928771644676849382423078743889619697493062181223039385643571565980495970974433668132893192398898823902535158891097550896041127640918493129085945453627378345988828222024745198265086089546720475523972435029242334267984167021365775954097156210786072758738069884117871139595424418481603618093747099403881474985256340937843635521926400955954961866260312731907698167336295226359259069323446715407263470593734749706134467641176744568920812828081175640817006608758249639865634345085548180344518891683106384500084511508955023172297907617783714252118043425265800242640252942951822477728959791644187259084944861637865180494045958977615013390667486740551170794564059850724050244301740948210035166517211447932558626934008804825077401356374293403738406224035216996057177393165984997495722701784029741545562466061866161558516104066703748670140762208436808588923518210358835448547236814114156283190871409144965198946488734298821383172189133718492810544106183931716065349134014208012482997071035570457121398743618217307073317370520651837452468685045306998986557398286969946418316866997796736612851709579395048805751154940302876898082823803523179053016368729417562484758959533960820073453526180769124433610273552658916359010495723306686419422457276690082778460852517892736537264093847216446402666463632207337279301080617589918131772848043005366910436787473700934674350769383099882452390473243703673676025824670243736660686624795213515219604244501592420851591337916688183220962985708612596744693081872307466054003348832991545550985679669624087459052328956784334800850463877947141279365485005397539067824773403017279500640426164772991536837197394405447197877208683524209530889981682221674938869273689309996840018099955324308423403408872161737156834875737135036613411820048915448001643015035810083085115546216011097462467694872521984413994930833160693122851068085689322709388131501096800498909598705639153100989500320162213175742991681495335895962661992315750317506154490830770845436994667171146658539821219843537946801567098608282248533343933569092937477499826248629823328266451425125170153786399521508940567627743915357744093286135657391571531955217012825509983543336385341545024533137367644238959516009653844373316419655431071405608078587695275600143477763782455453930997162235764173211508358662577818747599370054901417487528608788614565181875319273361881091157684512708348605338642025901320756854435920611154594467231202797705604915744267521006940016315680777223528415104834088045075132813337968920955418006849149516858475452353142734094345971577840755147244035535133585869250933600937475674844372128802566606484207724969063460400361555465823130261912308930349611772509311833388047157555779363369862719392666179718294402725323782260689148524688018039873798446982380632864766200863090300017729743912921083906179856375274832455902976398841978539787954846926710687631973016956781589892650041532357113956265875332614820529783969373892184432584930214552101931499556272512190060230159448038108178236144258838620119312501756137479950358574020181673227176670810862073346814597220859062103512600867898864499916254830874083670206778005366086690586293345256306589034615555746595224178365030238543354611299406929292706344644100947567056344691264922676299702401663102185450813974113248036430096186340757863036049902425526119182184036463662695813497321055816319243761378803708853459078124081669454490870979988320177667578359343025361253399245823249899048065672053265455396762757700315601875606513771073830864354689558852373511861947624325826676710316008665935473551204618168741677979586877840537840098703412767559782335239817863731761002572943016659177236886947286763747771275941313477618012761344353068069277679087247378546388859490095475823168278439073160269273145435518022995121808870064927139663945023919559371492341817710751525843930592858080731008113947654857975285797639812552810049884931854772391329197372396541657563070809690595040134580872792293580874490204545073272523522318810071206053562415993141657603017711512583090997714358024677237942504006286305646895324934219054179627048055155510677847890315143065755273238174308950979116075248894633510648986193974108069028679281876456689550766054739824622800244415497024689323239739872600015396508933778356579515015506307588863640999214090598512879146374730667425578590995226681338098976593429231923049180612434817637402530458508507006248841865524044386383258911612682809776264109428749285590068946104180028062210074754140342391315130334870996938671612138848430167478234054225915231756237796681068195383936588019740371440091638704228886101930257968032238505768340823740354874529972242311393276108940818079614440922739135007475824931696561710686680077527915981426854612364180100993133841654601394802487304314721564110182058421001150032880379125426079679102990154217174211401459399477347305158314182078124455005158276946079750597901240654729830236244473532525973033600472598641481818515745317554542449019368495901099188815417361931991884855089308292463543284383546011734770380046470361317889826973386259504797483573544859274601199184944582480514832056223985789598375115481504213165884912958194961415179446718265643370773067689131908035702333773697483643128527875696213926336008090134918251354373589686981016449538478761488065143450030352907000753968808665766585104135468543248955346303421592851117744219375141263169691987469369626880006792171163735456941900624544809773898257885336465257888830851601926207914269304425605447573575988005874709935090474264142447471203767653826863282419581749472472480492727058398755007001165390997134342491730784784730305607004924529920782630350100482003467986180739595661653949279355957573867716609322701300894676720851567178125363442627417367082474309723550112872838812898255235312455216357479898229872832477224766817960514893370296993896217738086582688917945738377003197880983677510580066643836824423577978528595570664171084077053776780791145193229330165821286341292831782009671814758167677239018209623478935296134077724756695691542672463384967521393969249068587142192565913700217619028470549400496155075838985086228050178023560057503562124325874572254775131648124386072851698514956753981115740462845414823158537857036622427150578709513753310651981090417765846629923289089336562018882181879246124166343420738252841582584012207226876355611052970935651140384841781661426678791159443895079265314503639407226822058663149955252923050310163391791783862669339722991359092317239878341504417416483236564110330724999676582287577108441786671462852686388515462326186964726399995025228991591659225668066821945131377221036527373344870475278910921006610003261897278650914411231049784718044044365865718113552736071176583604475428103397017818481131336278952428486023830527716454427322875664710090089086697489377970986139390669175709892174415984794826243535167269035245798526625450747712057119808800322277020739064771235109210338153228643099893546315199376334237786176519321980604746020856614244168538188192643969610775328975362510566013927992602985430986541237019465889137603279641616170221858431266948910475682620498776585373856457317438430701675279270849429799426385471562370502298482213346888085465413679955717568233115860198822759045452207158483811119427781331167214271050727404195769901431846311333636722742321489745472078488061875187861082465167670830131882652714414130951404230454533174445797755821290870243678685177837699142797902509836290694446392132337639465488682517957680879383491550818688709726613912404663169747703535470263631039422998982177442152962752380746526144700584679985755919358878807434366799838472625825259192739357879378649067748243433516397949479961850377264981360216367244312174763121687904383936667967854018517832458346139403120040176321325296351938146527108422590510840559749100274971511055631762481587562302557327473932099247535559630004433090833394823040370187393350742751137044959397950867920327795823576614647437843584266947622228663309923340542020383598461184701355261086400919109202658387744029835565797937957644397585310211735764494781074824001201944581854908423161369320189826595802959098810268179868426092208536104878754436026931264688539024570041541698954598891140915057362090808314735030626806084237594269801411486251754935312148230939394711794092654178357693189304586983616125812533344767829616529340439364862256870671095174963188149258649263649874401489792971642244638644420732435845656660601925943766251343777048012446328781730583598541113934161610320970101924789920719272878817901938468195434882017450761631061068971599324419162256912026368122586993608793168183947930852525421759279043411246124920531562503136168812235701438737957957793354651243825795318765360679122708645158342176552636549912209472943361610645687148106611624760786504269545715249011168076126774892241022042040724330767290857508422056054972679667671632149957138377960222673543970123326882701284178695204516100874306312062426256931554902363662536206166653482653310418032660712310919591886354704723431536317501393922787047413236861744826609663223969220464111009882542208931981877102371414842549404401548480896337773662111162312309633917007699252308845866302443419549610735092084008163237604099015264188313313816519818545343870943424720805480729995723909193043786594505491677517443382598470295640926307439498569934662448929513137411121118604457795581735204525725965183757647106251803028535291540247685651184364813576079963307974617426696717465131677009910942867019994063329938734525403748479215408226440246896354250981125987123055844889900446622943347133211859718035960144054916301506759972917154536691428046639657305128483363442653193719489171833554724191555412695460282643723558668653603227504110246574365873939600543090184505426748718596289857764905396688241725097079723620992463771116295038615646400035149971850185120552659570732268259988660970471113065309432452201380700606220765231367002951551310959463815535804430688223944348998209359054263395832736897381360388667284154963404665327541864971400110888799390674563488205013127010426956192015993420716875392103075490086365984318334034904709324924568121652142217198154354408124145745560268355033115197629231436844746493177268186497731958446336746425798989397839414840377514892479833897669909179962411288896241508927862412769355957303860767853417667926366706612015891217360407375645299277667963515147271836530815608825235364731751662716501962039396668367820519481836205446134518560084295154501102754467324279147862132645049462701645255833967153528928604416490596055798770713384868518281798826272369734135355926512685234405561190579260033704766339905055877699204803214725112113236837354610259329759222247833754645278982825630233024228941113549433588759615896919738826274145202754182910420247742742388566036579617712412637475192754194495370472281239944852283294447922819912484653766992782709039338508333405882308949805727216174125489900278429241359970081208703018242910046161189995212076507116760429110567255510476543667931080128548495137792464734935522542490068806038603480368424799338041951508675690494054661649004738788998785839075481916018907166254572506254512733313927657924931599209324767762311961415933681920168667639819291908427445973043113319234711057159088807536305116894178781390022769022502398291235854577758616927851521253271547887491298139176985927158023743554545109544032540597973742942361273272811231213345056204763534610489674042591743053275486197675012350625919598488347382651846013766322605143591780947004296277548574727030465847649906003735468288904836228938825626446412212461198204276420030066262470196507145508231506913615357350163349950391502121126216077208876810692555363242560578142117092690314988421375283907891558966451050446306273166890722303016057579143040445409056144325712848620997430301117344224972178227761458639775995572575490058318249182673896052688158662173908810937206667860652320033531782508691558504430757404403347835678103767193858317956654168677243406698248746878149956487028265092920332597012477725465269034426726057566509175400802033036455701091912068080053511274930878173724398046132726218735657573485614316633757931829440017764974405768562981593671749779932855582436101892870577874091359783861105245820899429942374156622802955205721893490179219761737148192886794945672963378608894328095977065321928238597829399236208398397672449973028020465830062189686582119776486349383913412805119030475654448442851892301548386090617806125669450585115226779119715917173681086345352423110560794015474171772617290611352977475744194030790380922960482239243825360672768877185191610912470183258001760755601578205161772564418610391972218613652771046078613192160194986304996632872018892481225365537359792262806392405497235364015900704280528976886597680511402824922994187882149165123406470829706333259878442302989935216356948039497026804982243060879501246451638984871811441893445432914494965410030027798941543432816142022404451978418621800266977254152701394476457108128137526648752792620460196291737712924920032583449796699244101466376041219120796541175179591958444484773176485644869401224705149604992135912741195534678987744011386463514960587062262173008425681778712992467174945975285719301820128995402350767905386129920561882936557901686106999045292385893079200201419421246727067686452666600678665663593214648610076284049098099253580296095028987840213446117468312012608420752267486304892743004884885938402051226898429114155256167734555908177930223260183758198671446525498387760677136109854158145348989765952185464697252033303242904355784923520671115758199113816523759942887188217417195979792388963351099852917995636786787361640988837792584448567939969373783400197679786545830963021858159767718650928052822722202867121393588359197112236053740217895967869215028813966979128025283550443401730079698128855807366312805044185671472246895248693567650115739963288415202999758563210696439674371596020412304503429638929259206405299123334210111041781487189679372178747836962453339402524188749554345832150151269138428180062845475383955054278990954136309041028601068178179097991611074065449467636333491052586606617732802600999453914656857676333821294905721538594206300427463188209628349111750049553363402983335308649595650064573554011455935800204495220719087682369636388463414320460167962716844853107673230729117133161164354011807337499231218595257645952221692388110530541319138951619758248425406630514905929466707647864588707867122611343405195146440968684697970279321874504481704150503676920197403447181745193759559870413473130105386514024857624498648481235880730104415511097559443290425239810894857544035573200522171061207095967166693858904761944563073797124712297508192456281795210220106942017845095064297783041694801301116774021607009902191038143787790661640927972644889525032527635061489197300234623409153545823577347904221156803561675345920755834302874391623172439206654959280715019891334150339830544045569646420519640052647316139369022417048313899725091871419129446647369859948597762109124213997395752583853396508734602094461434002810876338249108739533047807949506025814947787913567831837506740324462985525957560996102080236627097330358054170669883802085401913719327453446122127877854608153834264011928550711136509414729373212801435877469466761407526594332232230138028321157536569839285739812583918134149096909781369099834670710499330401785044512234268385275033323009947600023061569665376233593620933540664905256043626689894680204930547340666752801425306090602616387431670537254800777668779735778428400754917443985626018092310674310252135577446002861836886881493622222869252394328690432942211341807818517925118684055799987501924462217253122247359616915610953464659614275352655828081006115883129406519743366384022331398504416693618860056488628733160431889880056566256807732298084270711965401598750326390906117495633940518390940089622358546578885854146877558605555138164790532930247635483254760991348296699011238340405969775474069450228299469044823492338543839279193194124342664896117245234459029165229748682519404435190499944893703331481447222028659128752901294126346469630636588160243849648070424846208965707138469780957220665954470907092049721828953489759687530945719341400597713051496502498386170183366690254040997313076920119235837642878347171348377558065331322938223106524369725182493068743950123583591192407079589193170929690834430186180863222350147362371503211994947165680615212067046277541483235301270127003595307687878703426114785250128945416503827593495069638984727214313098474016363631920122302301489407069329845687074592903460858796912946573428021671318449104051378204695532101459827547266666939837054735020714701632971899365779055985544581729627569801391262655175926492096931651643562943545856546240279370248761051362027297692007816292410450916455959377362499419495624303091772503042273418854182760674759296510135102114116770064884718190676110830506380653713856522057015265267717446379307781946964083539417721778293723631111343325773476614703060788974330229179870744487115404193094319982770671943650661996334716906253363032409217609770203626684343360553758229803472081970135108152512295635650574480331082520669033465163380272515924167976967027124290357180024326759050527916695063774469731726032595447911336670800769587426918566125290418801288930391133232288924458896627482769483341147268839821527808747489728080438523695459216835837131650653972248261256037085303836618983069730509420127303120557321352551526782828819765395275108696607793769608573619213431774973401026082946953937889655362715291001943017948376961460135532080187023690532911233989515705515539643656157516012225252886044044233786990410031194755271321586914136955560428915546114606062656252739287566699167295411030642784080305980082415475645117935833200844397236240326957382015480100116982406371988831325374972348846642711315564256981759967595192068818149528091871148988680962071477232103504782867602869038429349915401410335582137112256965402748955649699092779512625716385706835995573039908988295266628964995631736983748197000020466095055712459198529898521943269711486528213347296550106425343048452258512210106533501045789141349157230405143322870815600353923403559168122836925850725304088804302930650768532628327041916076826512748007451352207179691595377060792152250586058961847828387306811666034244055316430660791677288819622418558913239010756030837855122271298398023541813357633491536565890357466095101815385616403393517746014895065127642872397554598808382075463737685019865842463692443750688114631274028388374623905092890249085386089858006790931223638420495515229848664516559989733077396107090651836788405139564855255812737049373567915155774317036411608466671885391279017029924416011119767457747935618380829822116055055367418512809720815225793318315530259171894628705995745174630749369816487185540064653957717518046171553506634548517455599660722654187086123694042640926588470296566437659044002107644475016635254634931045518496983302734118573007050031508479838592949454122301011933175588840185107061636238554392121751039244026087999513558131453323773475988829172983797749786408650865249652120601800395323766488957999451912889305011608162570043006513031964781527945282157608455875764361805834135670862528157256183318605747710271418132841798271562308496179389499460538091790562922280476456566581379236952751443900558428501051086686567958842254852383841165404376309629753374450767138622035293462475676506686846393170339631359122768780792915745041163841555717038512114461434001688189106039235615979511779232670013757040015917001186038656822293853416581205227940191096364779658890595233218322522669343264033027916193413209603319991758065160478112533126000768662569730967157573026179059357008423341419355300101862639886739365238706477366361377350446812360613431467054502146683936967441878739058335685185628569063521903188636327232171934208610544859688627773052578594320257368184006063267075766746717265900165706584232374734062866299618784833999008773745422420921123545833962251364107743260614627501350837842478014698701730916878832786820113952762665705267016182690107016798945382776033654676855221972741547488047099133402186213225613564559377244199032347076961514851041456198162831725540981359476691339758450876883243096646676167661458899865786198973807054021767739949678046299092820832190837260172539487378202496255891246953095887753875600923468630681462485147889716822223249073829191627987667114455129776390210051637480991617652044297682691318931378498508050006719258220614587744520352329242305174508895506485513922490218240410477765228601895567077333202269318339473797839231706619202024262378472989108923840815939003151426298235215789024310388249508944599276741865296121232985062191763596095561378682439254859366281337567830721852339634594345939174147254648786205478935478360851228528261272508948667599102084005792333014612144921400477172210712221969168656233628049527836704849258344148373318347331138881236017291013036224450856540459647411144417766324978448911188421223350684236364929665651949514081001880239933934231079781839847507780760769959199801419434928546677572273486241964854327066881917412522199956868336171834048202480784423352105969076960122844959792060985533607025891278485662416582018362757253077223852552475606252160588695117347288384785849893397280876491273721352466351344308486676640208952603786563931025415387878274342999205752826070802526684728920170228229576174683528455360946800445976699564414653188365883857378955341215407391113444471317273400352723513272640961064993881943560119821245756910571445115644809413118047660542834565818792891315832386192854397324877294375054029858878124686469562212563696660649697735112041508694532406399757945080034137270118310211420719132023241989720654488091392616211465814846839622853834746616220110621398501129452010218386865235334654892580558980701107778411193931038941082026425091453675932501920617141103626254110676608546898550011537885151297250164465109735870727343229343026861387584446973431460583066868329563911301284338509474563133607264430487527410756493113128929410358886221050471083030968644737280719669696608814873930303020744755401289260573772899039063231543158752724846452301264398781348327015980648853089535650669268429620121503719265378025173021207662029658531872519176881597783677703695773030287776108285626768614835168094649155951061551792196299986246038130431694235917509706132358482064232334114369454516241555258952570655802382515412830008323172906348206132262739551032908092925504249251351790462821735325210117053931676698691317777876091960220498031721859043457308626930475799345034031026188075086384669597079795050684315649692689816438148520569664076371293825077171675016676184446925531226977777713072256294782344030627932651667956386088864444994122884413956457206871384929690516340116067221628630117223352172391279222478371685610914438206221634140888016574914049136803526051100595522119059209043191753981811153299358497165941691277341402214324604661260049406862923585474545562741622292672954581280197619375619161275190883292758129262535414749451461955234723373025415200882332597829646798142079728387433803172211776638616283804044851505298928613381800490144088559217091325964316911552009126152210380653476948180013888364340501023568455034272196005677922277407690075124277523189482315005061805684393137899785648348959254992734570037699295262405756815755893241897428056489102294617862912738847006338078633832250021228367493622852626746955068896263866271415981020159086540786956733458863287926652929305228479018805090553652573260157852058363617868506758852151618970060147315945477433581013180346390408099179165329285791220747757217599616825183539889372763715815706105665932547373428039292771177883246577098953355191935315733954447849701100772863548639158600482002008274422941075558293461116382643228006107981918688913829339730696140747242238091845527961971584207929549610527115204517625297181250239546264695831405115695072564634027587816763875389347331456795662397276605666145878278258094990138959530621302520214290119021122459676060529285008015844000694809400700926879383159192531242346609784208227279513469114420137816906456377272166835304079471408565173629980067708406870283250950017552674452548929246093608224551214829705670794703162167626992813415203874959855384442142390633773391268549683989810714253592168187291300877096897623703092714415108679139492307063739780409827662798351805965500015307477810539570243546599141837519169078242741206953455212554778817280704804176311012923251819775353041998882089986000121275933662870252902015049637747673473111753402945721887942215993240098899555707769917525895717215123377775788757031113919011221973001064896345724461938501572227439529855873515157846612786076898610096949905686666154809175377858690036449756340083997099018930570334790426730966598838373331104185599230588638739737774161849625523682517856901425253718120172670360622010325803927746269268281091735177735275972235595113859960777708166921392896732333596712949991757736421656663261620376264580097199596738900731302402403698490260375001465642935951287226692647523190261796379193761773289714515672818529730518792625632189899607293880052061338217967209728884885045339933967407830824185684205592459378683619622395438134647640690158922594719181399018512230968247981070196498287831057513309605271550718993101221916060950816543042955817127115201931948524966217481973246949505269914811426219738534001101162722484336928115400823539489345085544391061554486720072086562063325027362006958978255062686235138887307450882344701129716352735607297313348330134398750816396991243573494996276353277891277280186996487988406799830479803979121328545111331868782602336542691489069804528495180478271621098828227164277215721179708524822147444649805679707350070326184466753492397790197735024746449432609452381318894735316371681234626545951669523625860052683389521782153982065607326491734880334823272111633575967384909909551638655854004958879242156778019114017172047367302275298805201160837722987623567275092848610216443358568882262358929701382641814703511771076890301506668274494253339437089989236662990059737629019722082854147960581664938636721642131848680986309898677277232804551220662603043190577373759403742501064736100533708949865020932586006689980523348356610797765094462228824546478399283687099470655624835901758034134791498560937268068990677731687381235163401201905878847813987250725281810067729362238470624249759479493898871737782029170033959569697064386956811524510523324616679006565918637848891224111722066046646386702322734343368817791845740015705800298910134643134073163759011826447122406539529948817368257881389367175241950240731290301803317212770433146813526202176960071166497571135947022562933813001092137871478638104119517922746620849255897669478626015963568506108683211263309602661673214431976268795455520784596204015078587399661749538858006314032276981718910061938197682105852666096144960182939592476356785204549796568571364655990758656646588183794303024563900816118789621222306735479549437625136749626645145395358208906720773987804186336722482752683422086835589668143884631060154616792667948198731194043602756137946897858495207927662935778653725128450960233230104890500397699872600475910447280526461289151198214054722879337953352360037906454383549606152689436560365749176986513832997000561636230740362340494367874890888155120658014194372421110409610914931326198027538390225737199895089351427306994568078840242915229236936239153869015124465502111193380010100704035958911812832226949593029966978410246572376182224409358127223190400270664269169313700180058135162455477058419054177678195045387427973948497520442819596141664170359918814968195871865105130997575773300950828053541778452479510512130550156510273611976272680327381530117348752831359539456336783032555340534175183020309873353495940664082552899679893777236977025822277455050476561585574231784237149617488269298409131316129878256984696780525140962342657592566820057606671680163912596920762306469213378124986507653008364802904251539274393212483806083731227787807733871244508212697892028230605079538443278173633159625045102299171772433669725829901318590909705646502433385368112834971009781572428072421290793897704055721152037036071799322043380065711964956740559368175980213382829073362665479136671502401262650018566795334042454499859030998860116655544971668503769163495008149783131925091513337642910139976654845110277197135743904399744837814584438935519586164365632165601850554306271562887153972732023839359297961343731014253058707473473286674955002039433594540921843193141008293129254296602893651457697097896159720621330505798020915447088815109275644177049251420628109257118922786150259403732041399895498926876788973715534390743718045435675973598163556869721373548323557504365391631965180195330042011326251344761653133440069095156650225312963462006889073682328574852031690222907774235932849146880331206093504043682107886681693559176452510524012520188841119327415427460758844544663966654409259946654706341666846093303125767262615497281703593483133893487424554939775811356928982619834276319025235132236568834164714046822004129934132077358978191407928111997161912401741730617376546574394880054025682248017357717697751615691858871722924015873673721104561925639642217173446376214347059464990943122381785923485918654495132337438706661511390550168094168019755410803780580482289626518126282786920182971235520883742061234335819103395635769960019118383053085345281856807188986966937606261234579841092744427217095840379233389679655836295587033958016805948892857632062391501461219125565578784342957495896267738904740882360501070046557751782112112106673412412234349255225516451476434656157875132523358745808379726807915879686920703985981892421073469478135113684186870357282220216773528099375651267108896522488017628814923575097918634594236379055912563459353538291639742311300877285125497855399874237832469577482957505027660026890645940600894865846606359690350925751824322120604563538936825041620904191201691050851781892839508807520539915544815618513492377612250116907616555340879070315079438104402362933639185238966796955955494886862481132345084557047204547927690247242587467249264664302508673714405833665617805290840323945094890133910678583815697052702951185526058972757500585166547126988143895456523347322109664328473656121372223316458751785150302766572119289149421251329857520620393148903368202696180038906863673422592799990496440642925391670088460486946576021038495631758358815823204701747870755980633368989842467384899255186225413544654149580774930688676698911059499216632043288238489995552310511144342904498105688810427697636909744018762700251228335981267361672617115351627402674711823844180237052975416181343511122747163077131573064982493693070168226199158949534697383253370608268541229761207163726414170642915285153188600528922694599783114316501769565324317336866907950359649599913334173451519112251622986115313742603992776560161005016429226224320819179422491290487695333589625473024046186849267813422713030761414760166669243113987231808853602142389461175768940833166647616900896611198295208744430259638032556432622467394219775075304694155408320681618161599657159063935037808260399183681150664500685443968979323431944708296280032629080277674553682680723755953756113948108365417848019430036721524526368278031677751502865448982420221174475879063347889108628924685500472756984577938661180431623187080949655157105096887916562336146885324517465536509283671224905861594293624423525358578472486146342948600654598102398621105669202905234243669273591489710045097202921097800880579943326056226715662341239800460728283983177878690908067501188200997527366443762157232462364077013635947716798842216348656069545135691448743241454913488527554142092624970594181774056983505744706423687748733032278791496596279663696208221605881065901617535229009590455581372030142073058220329244220368522148171786742730048366920117299973250297207346564407367305426121519643039180566927702634433278384281521007179706151685335527497930479836408632053627765818326659477070423420742807503879306480948287457210106077227266529392120522491047749714559904361120575921546563528205898307575132759086969355008579211800766057272387394597922555963259347361088078340536392340496764738520012855245049876818305296231127295297355194038913103848125631762903274977548736907225361083559753350391872992237425804544511929797257239202603039274211771431095971353342113902771881246718399323275039626977303831998801427284441858202453943482552139068980551736312217078139275468731622936125056934562775213240167527453325684700776263163840359016615320572039876890991660925661706329569174826285324831116266149161675182641781145329878303958247275738414019156992510425289875766935871221311611045386769088196679081509418529639076393123670537353868495441013322708186820521351852749021074374665192551397372674468431428238349663568929366306206931154605442377856356677169524447479587647751904256627593312680176708421920967647155715245010366044656888008304371449058568400075581797444706732977723359233839235422749428995369860502167084136420203192396527677164010917076926264242481641362798278802773530317039924379900493538752430075690238155995083702632448588107079420345752399660287188257415504206995714429853404244706443209665471724763254029822219133815231904498388587916331897292718149228533450592177713375831602259558905629293682626849965138762072228732836433932138952461938208708488263496658772396962440853383893119364669476755548388806004302501124322006407671557887601343917047905207367152086660022319884466091861985303096777716023809030352425207553608861349307729513785238738194242511844743213869246651201360201048177844396471994268485809009324402592980232033033148483010301859308177134262394145089710705053806890657875016128838581702145048768500216847420202477117557610138057384994421157864136481629352840962631255185142863846880061732847662951678403181523808510643894686928890582370119978169537969246928869007513782742749322931638889281714427082376084243486210112311942215974887867649205594651592948388705662505919530147435202564210873933024909766329862818338909578978962462580730953670590121769213224619568845903759934588123782341305329793447102023832355659896514556161307597694327816644920683774001136854575714824069168965975529599867638791680544078610753861839617777546387569296316276695573395261881823343120312389238470264923896302951385275651298278201786897653945925258731043236103527004307634922543082538712001889353952586242369341655319655350312111557523398568354902102410997610959029934578308605993538243976204526389319612760932215818627057159153497247431283825788041852501278405690975312633404447089352421633380682334946737930978339608199417645151369284561297091416636309634500547584539347345569825431131727280449681092126337615879612838200225859795572852694458669595030019839039835133454047996047559002374906284282822429847139558612569120628223314610611518655285881741929585429947945426339639460100381281755520403864667002808444129710498480739270041821997905175497865785257862721381432833447269073186018808230545455916088336611717886776567127523502033247566849620582700321376995656147132951884043659475487025039415520267744575748306452689