2103908212402737764618232773867520674484061506913781969604181955863774439870515646080073450321288456556844378928839296978761233481251795822907265057610953074995953338945975054405849553243379124658849330561658967037898214551599982335091430636372566144321515422946394462389416001254287040351293444646805957699668939008353937736764033410541803633054649200577549237051665510628206861518110702412898464922167322359577076545043203090057564130082312521216449964637284012860243263040509981614592661947054979583276036851760674242657596614769684237630973288800786686460495482559658424169997326410219992541216146263537351134301639657315434225135818581206444926557566493037752199115136349218551367803044666145532660717387675923268682036468691189909371484890499998361715712123994805209343105868238416887330409230624063444074868340014212913360986166453298966772998303621484003614078449942335099631613737758038684580652892175683247310928234066495968337708650126304404638893152338591682789677217510109158341247644590272999321419242423719525141104224814655496834000372210311659894079447767851930547258848969698390946744485822666287416259461540158327370175723701784929722249152817723694546669325673013919151852842219981454746205034459493362273994286146134564584744458201588126115512782062824258941269721610141093035668710570265179353708102052632479714668792947747108796043965469015929869851365111340335255529484791736387790261163548789331956282072249765933146846483723586212379479979646963591533835671852378565798361119348448821695764224659957798305374720962858509874547545425057716869409976589513546542097725158753939446362347452535845029722719257332386321368365386299852449043947675927828493030235250067237921595787353170850159946213300078380712904779580062104544284986997876671915278282663425690847603752408474356761578014784656088967843073227191205510163134569612812674085633033588109980445208780324792367017386762303663142385568122886168482693874489133239644541089353073995173893028272446089891838211878610194025983392115288762382097104629441538097276292429276786001386745059471135136961018320233929894164732255109479431915188788146534779951863214957536922491458696083038020194385248664688483318490959783913652543498780607886443978015176832310037886686199088974307632700341864411328982484105776140512527076667302004215390663498143656475593673703414771775472417770720196667646593431361112847152207964326922426147877666493162112724920321567266797789548337032317462995478265514509376060729935378092217891393766897055298091740030274648895106794960434544389173851821135182795079373011627585914858230541115409669438332874137224659655581532245107458785191432304923195524595508976090347947345155472831576535405570113192065327590792501956415854039549919489668133065064582104997885997381654451077313082045209705809637225278533846307593490035062323536893431832204481059911421187811871309354963684151047234320665502635979312818218212206876404447461719178883616887552932415467215931868339593256033736872005725993042300877638892659099579842772690016938021832919393891801253537488413585629100523389464691613272089743106531511159335386963782854950029371275976055301317397044551633543080652777937605932108215899395577337196173488742394843978470982268415645702059247467986820872227913096164809426200785210124895258382931872457515211270492637477058011908147262676185415007317473649021445299974419493488331704956544455290351932829842694040162256415393837678728843061618281844180649665684776853759895679535376779684157623324231138255648171096164999467134865647672016703436792700725643140672977365188595132757161258583601389467376293914465227339366507327922708671295893374254695587341953822136991493259141934145312619971851745312571914604314205059962184320638450077610985719148160751439394647980109763787386976055261253621363929259842464118313580436875261276835449058883364673169457678311066184851939837590938075695503159033477177604492930162806849394884597599296709143898629252429174317589811555175351414343783527821909935604384498905407363135507164859387289109973842544435496896624508472791541845762880749063998591415125103303988198861070912151224943157242936500404644143773501796243807230448433036372004460318282851526427928443362592885055948918882068499434048760594798733079490632018489071030131028969898313837259505667012274644755292778146835606264742222068035286647394683999383990465162904232787267999626284477925606400070402730518986639055250385133513649001719175766853745101216315527428423841671443160584676386159622064366113473408188897412082047078947899521914598156259594016988634736250240457339395111172586022926587442915147419790274486162318156679179582564787457463675018252698792901524492785065285853515506117366764456541909964608478129454841578572758272951291283647317597334939672685820409087852836712299669473314509115064216420918078593948364589226560893430128513051013737762358618334355170962415095165205020286570078099163665422835268075850986948173813610647051278333416767698091806117529864851102535349019718592556416162185357134695399564559129350821844569356957880909524273379654683134821305276962463236382183438962403786807617907566482076062343198635379597578563080419143116330930001619078235850595113319600018353736985010060395661219990567290755548782461556419462749768110788088254125163393200276295471488276226750680929494471600561878695905151693417134158163840329311114198417157890510477159431256887990338305135087554841847369551416943111371855627219813707886149658125131352702048528273284037544980900233075975237893224672881566583497116930083534861251719359247489764077518212387154891230375250848376031008155825251460968041627970354254535175757213615402243083183558366435268425204211013793353133391445408356522412369227468382655102683795399002316449654459396311220446650238642256218239689755489259260993409124246851232156107745556740515913778744310034494723197238836201198464017726096132128213011357651183566994324396200720609672364494062264773080229866452122041365216681234155287694983549995673262862599786242932865247680113503763020753702337723620348296722659446447115489398188153494794906966502216111324958705725935994212566616100077458714162423483341794717217058920808828877617456154928853299237292494644515405307879789130689594213639284195215496973350222037849621454099217582792708793728459417524697650040367200668110170223602231034356187142779925099416163939905597368541801748204843331188383613871885921618828708519624390596151557381802773905904378066344815274505735154787813389081490908763330691088612078640326310661498224998665507722870207627496603254190655647432380891307355556696178772829275659728937078988642704849876435918554073867461865536322869323826915181954032251473035292811256077897938432240003673345242024784845874545440531721893834134401210899284660397529733235834552963389679768083242221630935150082763037521765722515848468897918943969399920123176359599930749192191366938837902970538799431378188759518127231369096676947508380121540792462123673203718165526735493697644748239214676729496305559480421316160970998731964842726102662462968648126591427909876579964679640263845056079341105251621881018057502255803342314848884984836372289639801894885956067594210007011648810532099459992049580272113881108463148210975379803407785491265901546996283295484596861685659119272658795174638334259581645010666630527114603055671421158324014436352601542905429477573941011868708944782630797459287063165246073104566974075272255731371424974331521855035073218155212489631418743513940172738157330808851216080815158214858265988857778467744296272915478925977036466019372327397127867329793594182575067875410736928859727544321194202400342450951388142153261565225124254951746865845176592280111736255144495050612228753901690020355745994472966381772670675608244063524313293307521187720408539711920237154691227865521317182111418658852954529623025717775171204167101460825942768294938561280391017668578847425740207629389865363023068242808117102548666536172610856738259288039879111690481335399758367481531740988863428743785325283064650978226253069876233721715293842699898822130489986347686539300442093162732613062153226196649539282544205833114202852173194403305970349916414306553721773962588117450168066285764602874193338290304107186731581288794575051555286285750839886355018340511635868824198236926976050756948735487401459983069456979590356407378967282669853827902963834140754871608747733781078177993475388618866714753079143499013110561268691281054216472572162883931260196335363812254977021659138199578174227145944526892905015946995662878668690308821730973137043884958924265682454455643106666874134862141144524431720564997893319287269275270252412630928063043685513991991041523973949859278071870467723555123184092468260829679699686062501811097591493730310952533234868366707755110428385399150083480465202478792646481197005496421380995138910674752321512474039369123245230170701336908694741217989916845934598144444287185268183884106424240296588819840929416979247698008587769707909048621422715556593847663052434337843822237617412166786108923454757720110556325020616854619897781701158809774808348086482549044453383031745795380329894811829288187719230646221246224103089369121705931576435886324266422562843576324715257008155788810253183307917811363188179555684324213070379813323798852719450387462892110125398237633905162530722727662730712002752703745853799187333169049267885235187099999813805585821241010842584864962909512557032246494861721440794299964260174551379127581241777916499266812331117163983511710243441887748105808878098297122965221475740222029400268545831665129996339488211975094082657979641435131528442218825474787895124879332093538914466231236207114599241161270990583832724040743460794059244013326001446993633835274478936207545195299614443867544170692006222904381281955438581957255071194375388101765439558474937899099048354971069958468544148162941074753948297895341449984146237504891176232062929048076611890836872635389173082564023503639239259731438414258936892474754364405000482104499853111215462512139327893585536727356304400179166329051793701849463132807247799670360794087893137208807901101808597742555464551198558151271554090488585484030423677546525657463898935213522484433355152357149596089971138477911377869916252684056776321151194080227982129558291490647211740673258465806901828905700357517913654638053179028956263045160493004629395913646488159822067061534711378814562561093027548956515995381663648101758476452018392437293292171315400157100976838756580046279116862729034863535357407382266282400726725934121433596123373798161205786286945409344973289246592577944890604209425003777231808192732203014113254513263808324790747577997162239594613156827726991566993654972943958448601501801122448167352583066926934458016549414724363431980647462648472769424082714213454791401435345354329721513435301322112742256382856326294014198988978165574502124034253356548384299333464043702458477407857784368099107088887335059726289728958730474967193159463349660455522677717716532227947169465883576507408575370290852288987873056690446162613421690511964623062671012155115956732219893925135539794288862290091229006396472561573273562303793384747145956993183355606115508835667841504912534228337025346534150444668675255580742625654520924501717505346057675134512686351089662056017465804042303257735293755689002268306110096361050747100019020979491714922839729844504645847813065140849319002264668365062997431821324213789949126034436082526178708447619893766713227448486937293919779972932430646772328830942122037844141192808395585912461811792469875627321318576398974618632791453137658204817155970464977786039194262892151828910942727746729725492270842933883524191501594276310894561525841602563109929786619681845540241329761521670758651381638637559633868195852157874217345165617833924719862032796583586259992955311031049767680544644384869452341517071127474013900878962693745584637861613771849182952199533693715210292743444536130558648785863574026294886989146416636533641219740619594104741739356541084133235802173262823194493531933520767120053858420250243761592231989755057020996308084027224375952183699330382653237356124204647075367832645924725683466457682881769461750078708488294339839586205055087467550199080537567063380203976805581802863725151078576873756863598402512581428522317358491132501958391065303431349560784372235659868811016752398383286291859900382823565942867982610704771614379113725990619972016627347595776266458947652184828947200166291332740578641207899399889721442938350855462012976825823825182820036377456798282316738473259762296593413007969835084445086086536381569771980535035816138388715841942685366430371787493062580312368659089379420581658174317759207271195639221114998422004733117402502779430534366049741289799716454688616564373199275700013450868316277244580443997300944170726905358382991773791753535354892155063037418708303214166817306368766924050546189878445970753290120826888755868595985658691836837441649911646061245568051116458348926062788877706595069911911244226029097331150058899547153246805877126533919984602860305837865559380576260862322547427219585165277718383735211525333971781375168941826575091867867123237123640709021910821749398434376703199248598129432985291495287503802949939586463441855740524218739895486682301787064085947120415099443643871198277992348945751762865345650089016552906237144793819916237917177760370800584799842873978649585288166278345993647823147113987970675486862738478134223338868179820804964981833729958886176195459711715984625088849101613413783788957052515651216740461295837481915715727952598439872203892028161802256875445647097238051380944602030015426860430765351754609182232462938318379739432303323948915965669815182615190435091767623461387491424910875283857171773210078882266680889080715995016611123319114430233470073048874214437165132977975533020649763568964871119995217227644847044128169016987450588886889662168967836201557157455902042936484951879242443432752650599706310629888502358833350848818763221830770240926356645277287594609536911681933873731503222231596401843435652739374638122926816117036993039643582328310563222463107716494216233546727333608429196380436136881750214604625718045448708503638258269220144451388274202664181955879881730983026269985851107095352492096198759250113155645035215790614581967358485319922380824640672193242556289086570208870446348917498086246740704918235352408087475027149911308559531188673330629381856963393132062381437693264675276117115977489774656934488707419995959831957862584695287222834841163346999955497799449750492942555203320040940523632693849934459245999282095467412291734731776654633796857305227733168184855739535221977026132181947079176147371507647771171471194145569677821857485834281601652214980341262744195006104199120124867852034348764664824875293082542729052821018730305696473892404451366378088585149477702578519171826124062568287675171945980635498209365406079349172557403547525849426501336399285982416632057046165947642308361583389332326760948742813460566068155321886871865019129498752119662937305628358989108907492534211334073065324381444254019334754977117299671935082425031679482271226487998103667700719747976277126536896327043120209121917540960264833010156635768302865947976359464048197752915152585715951273187704810982314514901181682288855254994554374678958695242793630434239504662199957355302555353459023920283958020324738548225324745218316171951410266796502917317334562039816448348514443619469034715827840498560061766017986544869990956000502868587203418104114319544575093793295287992373136323217816447128919718825421556973293614554947042550921613133028084794627478976677041993486522135368213880886603641307611088504499364575043143713264106682004485155309393395335519421528087397455945897197118549287562974937664218121214286634314411869476197992067768615855572989967679529020129402337302580115667825360294114610854936881416952780730966955028488638162668984102548416776215732689154129155042556754467945743517833445637123693156754744233427100416401742563573052519505773722735701104339390019723093568409770547936212971527268963989386517133147422564377880345684535608064695430217981432367401436515752277549528774393156557399502863609101778249525156065310464484021151002098412343177781764750425194930605943469524277647314561556765545517547414728259646977259875671121015584186155222374857398963213126539506031219582053418141585916277677677303789991410184351425647257148293610897727309935499318092857757843632937646088269583493568844069883782877506258244138283461227342697349671005982865355875986689012251154991500080433465994271529094120555067726951538749063511360299172361434596869778769586224981609903172365179476144249935251091884411297379279169642069096527258364967410775383217577867340801661456115355447681779460933120453417749180740838343346876140031851764679267521658795421119949920489455912701889515724979999902994065477984612680004863748182156960403916975249097953475376823157857745031479474370621646442443892377924930586106090240283183069489648878037985614986913980780363932525360953115636477006479697060196095366546792752373239749912845125476047532333806119208770051930664261195752043532467464785561748250559777005732382835246971383465733402687864380244951921475822757943761329646118196154731534096021500207017461071765883082027578405116506942080427413245107092818515907515853247601755265151435084181797904751015052647242567455169705171770742695472685674019014032842843719566166226189654422458547136354069439130122789840832141985881234543617317890282293815998829053742427721157415552451220865931752975845536794393740834457820816052044839642933003015579591772300031828535269739070296365925967901622125235236606947226377053251867852243683164749442149832244560227880671654232430623395872200917677956770307572642960661654507827501391113897524673930552904703713134284151673565533880955130567218699956671139745714183517180684886911394172954176993196399827554668774975006548600546323035428016360871980971127671154088703346443458385318697478567515329035953954637539949827839831828814682629659301438114194552584848931568268999494752493976566901711041263368730622945895489128110518924521753559734292673940680998180391955653942917771478876108430408371734335539822873848215023201045823544770372010283531726554890535140134446176975611562169560414660865095974788722749915174718620288518267639678985987952531810541924972232884167460022771598496022615554860719411546290679998198030377696891392294661625444741787643923949100413589879323475992241904671815510865392459984547693946368151742837726897595190353251813945341342922401857282337564765305640779894587606774356122382962700758636736225309717792641364957013539625582879764974747132838441330554204641671754260319825442929264562301921433585242438188780547260398926999147862727880196923958883271484997164178141865000416855927829355334495832237444720488485190496609537277224806998730573901378635663438757146392586749851064852371197279171507905938152939488457163033115593566179744250959378390199343267689088017161064652058272086363775118807082902632500152944711268375782405881594828535557774198659286522874905209805697496505049925387888572146198628697142922357864151869536576497807198047211978721395046463994678072164712863307252499635316303237503356709480617605869465531472717233073215509393047104624259969427728025428038011621439825030762737188097426604569399756037411835782145923423588036268928519378799699250007819221344264741599443900595357881381334032306372457094374557522622795897638246777456847579477867997664462043126274359399508173563443215953623208188473842065908241989989784046047352162802784096420751233691154962030927111993980028154998016503625539902325799763901395762038871707492445141087484823571085940774357283734884917998641726170387836784543642207592987507118632223566869405923216833076836900463050411197999714085151258528682425548406587938270425780114084216924566133475558826172727764618171874484126767306609260827568162909983837148772796714664599583266326687109452771733895068478105417516814693509233902864326029196812178334699397700880166760877478710731684050783232739754787547033086179373501489825050226460944112531095186659699264511782329542029917927519356402086254691702864738191819829551225876893719033914983078649345426729796717151315022748913784016164491037589874949411831676670546414708322184444736255802122929378266810054341502640305645181563856363890989375457298670321471828849850114521694675262018287317061555263636394050112534675157966379951991494524112880582318575979581227826494258725487235496362081788086756386708733572043526525270393089319411750937372818489538115973592534209706840403731046509979481687502149381333699377695386038270308730190475756074825400654668694458665877274529585059556814892752236363852605853956853282393616111012097483504623213093242822652094597554594544178329417298673169499346324273032396729842784666319277166185074058924331021534661978348479929833165201841751696847100459818897406510614460725004147702339666175538751759340986219133512053311932856992205749261256737319532275356025741913718009334553124954544682455239254585010099031576996798552716824478755882957763445615863006876662992535737348077829467250625349387371614477673632238369925918536959751839398216269203526139526083714111757364213702634451106391815812125836238272454908035327690248329031774179716212197166778577113787617096917398909637241182226323815953725855237138998525674595358662958326777143887629550717423764199335850450641609808499618479973550837134419629665463611194513422967447874101285172837495593963123746139379298086322002335150325039625949744847887646457584569198155409887001625491030631347049231597311707545963911726144472893278066389165090657255271036560864845977371065618174662335418116883742348171670849888432967512290898050041754646598457290646660497661268700853428089310228875130865868515420842193322988215267050958457119397131568838269436778935033833339735176015476217050908976828982931835545776958472278886301754741622900467738143388708498040488577759868468312405591778998698883003983015360491910838960062295626173568033428797535436813169255517900379813993298674494544867328997449890185114983141684023033669616751249255395975926872871195793902722487042122371294751423545562496598341816617621012511646655946333303874905838843369761852437456086282850652926679637539303573040796930434882776765278771864565182904643222851020478096990368187417251986583875366188767543092151293565355265929905920993614391838331121071389036798458081755429080856823254748855661324771176335608834864473571358636761339359158193627776731314717311793479380934306859678037462881971700536294493731351121967478369520725071715234046431475467091054133816985754455714078931501318946143482923128340074546481770495253683385059310733005323855155985533813443975528695059019755854249001669539797729473848076439530705150836378676744536475623014873625621429384210866158199913742503327477634530509997096035851798355629354590379474068807928294187024141226093778241562638766070955546925455795725184372721916610640126687733781083582321985018554091795941931135306131447528055367990588642232800393150498212794552917165721418208317195016917594436215562062250757292027660621537586178408092197926921522983667065677152435634338330373257086628711016097611226123715564725529408883450469481940758786127360612548219371112866525124717269009777236139469273176434340833133424382256148629851032372088298224318301824160410606762395217540369720996671456938927983524262589361745576632878141867675584887157134247333973746285344974553004749550623677189357159159741394153488635913133561898390232958339655826565530156402324835961439977193002348665280014709840299019712463567524966100979603745696426762372303850088882844259870880082669049478425386471849124483173253985395779280784459424058314963435496694535204688067733643047692215462847411698209564869679694325759991279424438856172531528544146040929522572930780445111069870108705805360523912919447073658527101595702132172552930135643800146876947711336493457802866856525858217664488461234729518122936783442925738595129097065180043940183296837176876055875118486944919628478151670877291965242592916666752560244535606168983012259478391790246329465387044277468590674359279272398166161924788262572435837612000145647669731206359854947799974890837394354318459595031868589019506354733520716600385081839460207090282904865672993741431151390643585255726850128745541455745434243718437718581565472768684654757309379573339875736185186074940503376306798248690822046631503813726723806937715129081296192751078058307064367710521988919047490465187831343843704376502225837254707907989407355901842864681937311746019926522388899815363777171260692095044537439974921790242126043156027099288235021423458806060921797305665042246477451015485727547012612994110542519817122842349893513107632282077197964209844941164049963921811918012647372696096971969226842173952641472552243272708326917897695853690777676013455095014779915319463229622084554037414921638732626530714312596428687259824059057723423276127887706041511628231781872656484260728572172722346115682868027088118446382017366993547297881430659673242145207928144179697285187431521340728590093237277889590183335656753241029482953541529328782080972969681701271139389687332700174567573503464726862217435170516942423415333705332686783184535305924844665279609257159102115841202790348862300864055226407112631336721668602125546260566442031308795047385926926294364194011588897826631755528588831785489700788807361103798973230810946107992908324082127538259584989242523603276633078654389241562348538313641232822069459215449949469049673456973766176916798136638476676721462597918765247869710393038884175231256622995824517630206959702937799901242463692204946511683332091975062172002789083502338937255088232133469656904946210015978832852487344735920385652853138399681402264849805803094932315613618199500768056640453262583646465736211773415895832488668651719825762441266119209272833988274495321801170714380904407141809115823332204543245163726708206568977859895081521138988073478228726184223199933061320143363397609068791802922295368117945139335761713339752015256807358828194397244411799671305177354408201044518261584039574454560168066714335114584782332726391827378269295495308117438582356439232886868392171177343279405079659728212686624856201519356031869030759616308542779808942492905891728722468301074914364923036242523106691754123403514687242978793375274355089526015921878850323806018322654225242146459865210719650318968942848564832854359153038472839933964784083531556228775941407728255162329359636357958813696357811737446668764884355431397941166742410135382418475967495977802251625298795514662025681708982244469994515083933462475100242040532888557211620163918840386618468028656053459744469834218251877284225887031144576359905426088467844109925600092800677907624488311970171436551433394268565054251308894227173128827358767786716342168614363868269881753520367870226836726282773555237991111127265471185642345749186219844811239685431486995641358091738858895324315815280225229770721543815064012531726991490872456635243384186675963195328683888316181228488855136433300416567075827346974974412519246414782644672723024052772148380713212744577878937057505232479990830275370624645589911857510687459805674195511235243633861547455405191999057556134955171280430483530117861590164687594856145238584421832483623987504205097901765866846030549090647789934611336085887792062579077929264472300656745948083803128509310717272515088933021193217656953900595874229399771271469024478189739655463656614314133434365305086938565889627764923889616078013376907639162353570395906697695491575937244416011896943790089071126524614382522535943976742239935182870634506754385739348940105096881450772112817679476296105749833740147774870491659805959135835606670890103934120646509508207354869521893323800101426376662458371370779108973679787805661126253562219455427280574707209419539927611717392394614891418217731364820607415936658938687396977297594605316690327658227599435077717787621014850824544886252002628865828080258822796554685344708226378834448125849164459055478076103845614103559388115373344256343992139729241390317325067284556588253536451336837873282953895727818872604572026426485743130323141305749135367215154268410325228898107794033254800341434788278908894664954231967755322853729644693442941145721086541297498829781464109427962815480341718386532544674877117238700652816161515596625683759226347879137487995318767459598353065616832105868427030311569246498872525416737983794390139746809612819628040675132730475587485715626048066583997125133287346445403483514375190786755137325695647733540952801666939640197415833993202575596649937475641435335896882176580233736902944525973314528814015514931515132142115535416386576673089911368607336968992650578402344966411498264540254528279658814624840538224276655110487675585671351965792823640337227957878940397969262587859372293645911335877961283663668996385827437280850867212686821267618507372114774095404877935366908773021705896762973415310724828009814294952209310914405424851398779842879726912239745341034358575985771941951072747360215623803395979431313555342580816134883200291157991784276240499000628241001727320503469378992693756453296602768378257934488505282647514934641988572205290567966210607951748972397133848746053373519596379557957067483260172448947656792069242433380952162985495733393975154246842564601277682465135826200159576822610665870822840882635968933272891462995756991675221025703574417379913008391899883123692612959394981587311174932468877797203235988518010728971242959888274388806267103868441791576790607440435945461749129210973714518128200950670263041372774328850498309744411419864383836858275150827356708407541481613272127458228250749385138820906509493036379471825916453559238855442313682350308859875798671399143200353518446058556950343813428896496228320472290430614501893862732249049833191058216431353184272711418270864650081413986587741987788953530242733676361025416276554254279109776611952961094991520132545938891069308678239153520780218467264159335173585705572340211970995320184408734864194589508152201021480098834174220890645558308817342459092438572560152290432357398883960660415972524874647364755571614337865001642466505605572475391720676632244327564663218179213792294919173121812893704882175405072632224993216211181370082509163163180749149349040595662799596988873315818384748801054776278134050580792662956004456576546410782530932853959802381035683994608405479636532179090508477041447306335194157578318419186697675505845791268418413785600373596305048635966531686978639550723193658867249616250880528706141223688760571398398132694781240803014782821963916003787393941053612793698535568419566112766305565637288189697197584070944392646041158061367822834361577465366660631043550974328955817017370024133129564591749288803845197781652870707623424250277510656619053357176238023188438704140180909280905747992386347642209727449739429482924922535651249319461230223891667474236544608952293732997451829537365288647573410366995165688409784944403647715186799648722154046205310319408067969482045052589114076915354877089383848654579112576955267099603032874535066576448949673667718979592580184811160869870454368174123284865153206275183357482716445209581107062877701881963649068855872287506278128236971478672349052387577102072682336131272951529083257983602152441722759188754916332983941770829075316163436067548158175258422064921352179503160036668493644831697349334583132473762232567268647873910608875307378490762328683096128262802702592469118838198568025193592456812626440163656777266310477463802770824789132294893534032999017813747428226253505399965857289145137993862092663110412415819185923431442731124847382271415887289860112843505357361056178364590805599291701585165988858452952282552452235389769697075962879303241412861726686398576676003503938637813100408241447436518664931438613717101930169377794276400260754845497591808541961131267150043419251129970585485618669271285051765058145569158610834294045184514597777895640338831878713243103184458968556470497081863551437500457890459853853057878508684159731343497710109807904021922401700289881206947332759347441987178812895443767702351646291736121093684558099656184234098056462038371475749637257711192452995927029984190184059684750104067846638832614151619226729815807557107428531787340774738416855112479881736139861447935671985567249294452751525939237029911033822998347937978444038820179013703097488830008960931382013699235343066486779560066860550073129565497603264070530606176835223213835071245918469253456463030058687604330409023519417551170917975782214127148643656974828389087409493620063873943725347110577397116401859206438129298817369887542426088921084882213572830560298661277369570816692081496303777757572489687527122773583389937749474870301376607776039087858510248564915039067319987151536786651606775358945304959328541237396126423572911102276670477080576250948875621981143108586009943568462515850768937286732618261036612358510637385674859528263304037661125199192381101005219281368092953354992514571486538287128052805746625709637562399277636018972573525123681259135667462340564257321603455621719253638285863934568481202278135185223879332378495044746207333307753846631280679958228349640884795994104521950493202236253656916020471470347266523726236038125946559171257293320874871379533251880377363756845093888517914288273029617922530342182958487778697287728743438883932023393276214817562574518423951745009190077197173003105207909513095365068291686272739123035007067529049726548589906013665415832918877279284505332022313585368939479876567526297567915638851754355629506228178150272047481051494747792871581210891040859797987393992469591432084266287943096553771660935381856008911724294473819323561052051588031994091038718704682349467957987605925641411519861517243522609261226142798971241064899347118933431466128627536755245865934904876515682598210690321177252933213358152514366223418418651771170615115501878608705123414638145233792116185822866179951324131831791827629381405911378461143334600892141487630676716643043659223825598594449371294567126246278677298959145299411660656772563510533973749960042102527676786336564592914555827927777314622572633763371212595794965917708791707675539780535515196708816652721756739319080251203444502177470378099784283394158935417130738619550459974875571323885537146767037891652497755421548333689845597355061981674697722130651972032121916285747593984884387424714209121955067884685173529228149472875487435441754223073643558757049566376203347640296800076384748211457658689424215153241144146042834000795952385169816950994002068087989750288955636492142733782914591711324086776999327227303725245055729313507040999768672231595647738201226466765581685124295315626470918914179553901758932187731318885822863173596331713535537820533939748515504090801895747660399824984141112816754253498219394282701976643446179817029051837605747971833519328654874042916771769779748205717679429617159802357729892349536134605238988895199443148641282333826684106107477572950432750577247112123896965609542849748770728623236967264156458454380380068410771236269010147568874449115340525868608062611974177874282014879593965235346912229397847117324191704938010620137435251541528874661957212479640516292126161168808902670590510518111461295291862301347951489645651781397549438506862932645259224631565994540645319889930845895011559814452649367509831488846601637676313388162639972776559369624563571552016556164604350037531197794041717793317132179834389965245878903006175481523648519972857260789332059155444012943317811363855049255034199983514048977627022262310248501851289791740358449691573770190297251410848612257382077498347782845538580877173145300399945834209121148392797572602175643439955214254301305679996736086011743794218538834820523987167160322753934513765626166765158087674771044004899482425223624867258075980259674527465900957126618584129255695073912909579225032056749857551140417635641743755974813914278126935563372125363622564255776283913417297970191219074878757369949998916858835178019146217150674241895387742041617649815456724500980369771659256792922662063273470330901894502957808865541823670225353885276225537432563382118852794664036278869763112176043626510829329557764483039207072479614380465050442513786281408084797608043878821568724288863286641282141622638110274074158975962392934438253471421008759588644963175493092282298982640806688562752348004757100585850754061705072119687871096252730091002173474219722595937251365078029083954557674351878676749436146540821062084041983066607675267370244863720742950052230658356457581180283551981574562381747529624910029197276736547514099782562988837345374381553732252520037967350588728965591834087825258035804144427640949143683976952749819544687577979745007768491498581270813786344555950869259424819021965260221199492470190192551671430272956741206410890637555557074257936702623465421742894768208234549931019095916678384844221624872117192891838386511161986489146103844744051386256313788143266593977521466968642280357733609074594998739431340422280701112402693244560588129514404347608435149176691012137403646886270419826399426956825614165904186481113895428849258664450612106370230098075423208941212621788815551368966922008627572296414640739613974443363868965384546527026649009846976995962427247177629112137949030618049665063296558448303983553349690340408745302718278946653244501379963280711492836959091727624578399448549594065888614789224641539830694693160723976232259314135392595171291684534635939672376842543411959588566315678935857762606305639919762423493792999890119518922217142326482867475393842339223392729404622263808508359393574664488249533867320095990721410208813137132302681215698581413121926639524822312284910133234911689932004071365578092269580693037682497113153365365310658947635584949693085426331254386818157881940749328825365271907201335095595721694324708725071575539621572987276663219256173733135955170301821888109808975780971079626212199894920378303410796746512657912180833310027155960959146531224476252201825273066955458456423909680948382294045954688356041200415491012600508812896673308632979492459650585727973703613147927719938187463765965874562135986444909560098813561591762339399697642354211830385555211435383782563068031063272337803729522442215423268097767810514204443531179179648011554711966910938150718115314071048248506937311665429787196552455834793141248274854671379139896844577008152568903685997493119643846499853197214228184908578346100678756017722283684553061658414273913269485717148290966895156908735205484587127268429357722777846057435909440646527112331177546132812824799398263689252369399026021766650691858354852095681399619306464589393708992752281796894613712131563776759320774604724419043469415194043409482109429357624131070595351563167696876019484068887018226014107348544664544133246089423974467658048866411965061890847222357805612607398244467886514744783439427864257608698988355777573864216335604333461678187425188735199978126848929923825692793670904767812229217734908717056616266169743147536775570535542390685961997297463899331385072635988843727901465414959698179136089317994338616377244034348625636112140690113618868533821038732308567162824365124017451942722447814600083787698181393148408081630358152815461162384424411151537262948520833690237797433748811545763870818534781762799957873954721377165883288005685103233269931521106146907206560831150293253079956836018365042223261928560965432314945058408673976607407723660268118162303844976268083723974172921136632813734023108577046948820325569502705824586519070777228408020235251869533172431198881027851216038939850879412925362624464118254723889570758376359941461714714789648032307059388037561412831854138878739663364047952956218630877018010407545546631943978061187845769478570538951615876211681556350180494910359521550678944917829139773837182268388462646159260978864238959274518010152343708337241925216406160780219206036731898959444703427877323221480324953934432609921792280842497174788093065326983962388220606433667542113957494720138194374519768208248747553726085335339808784757687217726640691242025521831932757511598597100577318232455035647307844240556549644882247413110048347057975987592464792132258073058688554297441176752360145917000476891449849838705086224807903564153319793005393133422573586436215076827675296738915139260541463466284050288773128726649843734743133612941980399676176517748868216033757613640242928897106029238453169884624719228769118361867906503934534488663533877979880761799784785010748499142671858371854038515963647496483137853487678536148860369291447897765360597485499041353626083216615595959121720927304422553981055318089290970036542512326178604432727946342547285820022564632413275791807176267814755704500214841274097921338128805489289198103405148878071317527630762492725320654906632423126831891558294825433046802169334479128738490333242281743331018755094558267901592216678114284532490592805492990210410628983274563636479291286944596444711387368773356701049828485672365352776307140238999563373144401555753301261706065374307381581413194100362357903131872531078406987080745715219777672832103619764653117796389222640268381580842892269999447735303342294649210269358475430510314957861662079632160887498446689653460156059732214993812793793811347351664297488516776605323690501001438923688717836880323516128179593649943587247767382721275476091561764854683164938102896130629430521846113466848172056560762644028708083137875627257359201451918771738660693940803698168566321096671945867341990119650780095963969379653729953734374720254903188832702775140624980402449525308904954973782760902903629370165429444929618986951418672850195065277170134519202675741073125202087320606661951375064623089389987818383024496880544827882859664690307210695286656728963998860228424545980435957876716321272758661486413368591798336197232521545049873243658179547662957306394355656690999895764944140624411014444603095883533408065333060515011774874906178214748309814757521292930407882431980184048532522081899935349189477019278229093207873711839319035024162199288866676623786019669093172448726824272131627521943499855137817406949292911640285348751508507704407892