PREME/G/MU339071

01411489757953507057402804797119769906762669778214068561923817004814059992296036751534397060206813959615952841818253253824713493758480467000857442564478861343058709390121882749568065606744869340897314601231352319544906986348487335167124563215919174511243454477039394318753650940017866138334642221230788525903504814494606964268366446924195984512699367408283594365042418477584167900727556945291904375023340623860986737385538432042722201619712369728730962548415826480023510056318667726629504447082703832054095502271998026934541798070553179787768178183914300185691790992118249379288189589819833089832755630190564274047625579772907462527071626957757570877067598941131383843728784470112254538687340255740583957393687585220166680756919841188388405710824109906931790182825792240037702424821450839368338831358360919284255976892772621289821583049197298565943834573471704880664620690605483034634569279265859376496892030047412622435501970697863621724459100531799401911568790033081123827208325654185228698588838474272694778683972935364181194500341602547851861633305152219050439635626023833249058459013642135248584890497433412701408746895111011824371532136518276402595484989066717802835698741429302818412638626489267230641388367072428821606039028347794628603701377605111821185620100790777658751550882828919344025303952472083573852894785384697335365952627948647480967005166060828273046662371400170853850722792961200864526780980955546916628665677538133720595023357693168903023283216800752495803554541691520795794543696525806753370368447150157025752620524002161829796016678642424161475477913920378200610076895475642974200069913244079632062756451486536657510442867856213616201115038618484418577343334085799664697539650938686992722408711766941085880226104043424961323390835200526484786064039807013055575882355784846420945605473649592203909269689388085052130511071023380808073008674829283516725382848734202897215466862382720914762738066667565315878652548933835318216698445845969564333405240179988292068228378976831520185720564165198275923418923341356641666390272431552085701331314060679663018068487021319607506652284014831123198764748697844866809731563325658914758060504605458150115549443251317271319879484427525201190068356098601407470519045232235571731067905925924424330999489744639192795451165182385498519748149889429344515604978082652036676255421891708154079157263434942923103884665697539426055565768784797042697296025554612008907789659535338181406804810039958700299573220916818452384865730071976978492854323789712822446254776096079663138341224476685240590929913735191645251758567991627492467691262630366494469761302627128516336321246010521693246400493621623889990213782721420227881774620473175821207301978502251529738529512385502652532456926088300615426182358998036908994697776038590711797667528947262849451951501197865115259017638628648428379743125141975169739257755070947870656828793355489580126858612084485107073103845641735538445259017872564332606628397432300369871442277728070301210035832545546705793325206349308735201667134482798967952699900734687740836135683659232087114858769492623564027307476789622695205349764385873835669655214946246218381900947528317542314565904078934618184407557663196418224148151114662776246141786583390459775718718707583181465396163762758807510339171480788283378355507477530823274707057079463150174367878423030700412533566484802980760482388401161198930172083467674320131588930555375154377636973755441178693581144421839098065089047102377173424853092341320466733283318098619443370619231561098160015773905254986003392195096481667297052149518036937154139130024501181345826290510556297673727480327235371786851961131576757359344228040749082397049757298012171534181621930659446186413532746551493308115190558264775322168948893507417692919956692939378780736277741343470304303205366292569065453363535651496832068294766544876087552593441520309352356163233702547781761771999171381440303410455685560631713130786819214404510524982933713481799956763880159749336803437722077576977470259294593575272304689729614723607889215686364483125745127811930099127323020365765766573738224238765686126629114376844862838593953836423858301393390389887851445778021236623213085722456421390221228327193476873960247675707430487348718772854458548662943165657057146509359919893601588919202446891501052761929668230015182976611074752868741333236156207255640003497612161395741725176220023759788513831588643843788315685800071893115314338515030149446711402957368580308424008189930836503281121177016426906547982277660074256626380201231454090805973718714990834541524494315893922643455887576643074509580264286379478217184127248678358171667415298904586950436038465927003048721377622062209071535385753879355919254214235599743866059385739349603770150567957839766717202096517548690853254809064237852822220077528982985908072090595017298665545204055890887122707187966844459710455722419138696820697134946105894695210836233034709910926338520364697749293444894579229961884238137919090465650686994947883821074123878898686280284548590269713327629282476491921413801677123307291567893389851807430694422578738372130902513825658284214929565087152243490718007794459048924929628039626954844115784759010453194242851591737473269889970294030292629107807222813154930729928276609063015864926102504084354912617707897531020672866839237189040529186684569936670688985197991645349916742336631548562787025422740955807943811454067443690968804992904469384771927304301576594752431885479923099446712977177085608398496348732134469052125308045918997876984266989134431883075058227534025910381074254639639753799553358413665745962016142840505289292515503215750991235921973141034893213573346341104937136908148666424722376213700233337432745435501407937988272890812592314633332054076750992220286668721016111180131495959843832624314840773820893862168615754303754512274695311762137812963721594694033190264101270495664977796371870228003038330238874675113003180423120046760474087348317419754934237114509454761231526064194468148097592600564165332203652382859346631288810585627647853239290857223421823570490870695826220255148910382034041370017593318439568366910886148832371422149206482111546516483504418175221012201093107343869158187799925407786138988290879395041850842325510684639376465295621111211147211030634765085539922087398268013283070248762071549481161464935339507821829621202106209354528849261590652231061263593258769093562566663179241617091359211372346167622325845851799319999044796987097046468517499017068617227148752735844921220220447041633429782398627876865175516470565565169098579994332127017327727555872538619228171133234323551214487399359225687969652568795464642462941096606999115566994841513685161696042221651745092344487966517085421752155924419282079106972963005151408885900447055457457740533385847275683983383126844572741560076958938362005077554826825821172700005733605836838184881710111900820450627748691369579923868138996280302444141327103748993524504621210754087812713770367074388557699232705376086195244101847203574684099142638326177785268341895477347777759973480527148302152758711803318389976608849160526544342659612943835455627005212005942529758360497272495347741398938563067997367210235911451991391756422158105743326063026288407893818326889667944186421429186451235145210347068780687964608845505408888346220317132327743765914990333433481547273678669840482137978937549117572023511585748492667659991046214060844894846894227591479790537722020836339837933382654133891861884446125025650469944612781456300717576265118697541454430133013905549726897165308611137747677852156702228469279406142479336591029453052820678418888764434401618813653221266659987668243843428376375575413100779999706765704494889551725110723285336137294567853245155964961377391872029553441591535746085789639891050277776787754880072095766520000228897821944542767245675816608363378497236781787201546172115039146032881380661580637934448424428133000922127940792700376285561502366222144029518795448267030210466794268558568322006080323042471050224351583404441458952710907738331781646966964823127028773980810771736295816961369050753859617908781466248861789748955011593727033120229469558504487188827665549754625106173454944284339967649257870657703742391261846780968258537438815839248857594359762162784038987843364818737100756388185963453999060293830290174251668916989144470700327344908820834927772743247741274186568963571309066148321857891011866085335078777045941150092381657945945522203026589370710299347326366629436583654488155178644342224996427167410877669004029948025964692345262990488736070614751031682218591433512107250156057029918062856186732529813306672172156236856075996920352770595194022447662865476372860324971178685796810040902790300105223655695352764410377201722680957496792750605401150024484462754164904081446987793171797952536539502911205166240527884152720968680782692959263673022192571130773809397390873990288393635194179318161845217304318392089111048107400854244057226339048331377915890114116033416010691799094239041494639327497684646575893982488208807734526710399696111635560136428685123976308292424801142581384276085950532679688667963403768252820513709739149709472249560400807717135664210522027088345367099687540472472893536136177856066943901227038558981453945006421554633562936553825673550297959498954485286863655791300487548698904679576747253796720067007428902236368278523300960983210015817479109879730619745961605853880078920191327783276929038942344354812113169103127462793611552653461891705773637387180563101562878028639273511916611197697151125943557313876656672988314692144473966357676005270292303188163886977251381952629821707956893000762333725645750499524215231765594089226463078005335716407829934411090509497132850888555996556097503891717441769567872030026860189546205848009461250931773599993855859978171403002539476938971941317491085444063157307451804470991050574258896317395359753747184430316744191261073761940440125754468252066053258423171744429114319607253514318539324787543473032296934459412461171352689717868294612285433959684147704136935050933108921877191778468022627176395565622345526899550148482947251068768323741854951755049986418414332739744723281042199542429206171187372564296749905055234390330014287091920447677010110840597602531482904769515518071621316523890900129352730662892303667244988775214328058738942756645409599287524114050272823449790303169884501075452310282079179063492173523041257139484641935406615035658705465758948253218755849340686444792374158112560716687556383864586719566231513038674263713770418464245267037346341335011436845270562114999375543531146814090972918285953183611394842979621691920170986757118489302693249113473159777486288555734323345282592160113715358924522011356948740712885309644153210452221741117390768639845762559349324974800086879191802916678273538615060089703563443051097802247832150454284985891114609147782062090265873177739619492662839949666890444636206626205658611317854605481306637937008672205970172070615768214933411492574950757964452816289671382853017525454269387459305285622330210425681871392905830165473535339023724866607146514690868521393162162014053715843827051401405483596778165908259491671821001963329255161396454521230572299012704301486020275043250786696689460739813142759495111330439503634032726248383788117585894606260619384922836651537149702045034717324857278929184395570154555364117326866483690820182244655694774621676239373956816117263702012609798062296619157421405758637377321314573490288569041893014201023679476556040722091822950102962615132157074753445004018546226777198128614674411095312249567785666089261834235006736396385629202018516189141491467429515662250550356872303968492527193858581148908766482467911180994977354675866036084491533654787019546312957891276882092028765288998377777189356467879754800258765613242676029797050036414818113136195271088035788221576731238512100796157181734396454281004466384522343331524406677294813858040189477710371373104264008902764193005453423922862437837295476064773073053400565952399180867662319919666390530981967559953644966345849699312969003168674028862016922190082185011861274805771164323947836784930201551149607797524482339353236220037341404112237023946793769157774504813183383252866904073054338768376565050364322568600108169814130072067254331965845187596475429465382868451309994417818726907264471374228832601476207864434991776753446267632422908359152622494240449268102247574866298994612511624810587745254679125513632947828127425014203416777312452955153859340710862706157905236522455303689153757831004062996635878236680155766221026124544428101744630349191113955165812235950032703191793817208659767864532673248381381379385160920273914388675745504749074449007888320658240997843560085472169379767347064537316577931591446744924116818112677332202657146112732596948437643867642690060241663115938378414115622957326746788782162878353703952558767617589345055739465126374161904840663250088230886198408945762193680576753934513294031795579795392181866718539456764052115767451346906196062096964670952343355008443582481722081136355169449432346943415732449762616590351466199754248522244561075779697126660032568746859297738497010821535197855035004377478790693234279740517985020029972749818090992248770943811655066023915232595454253061343687053442669289438189929730933565306810085472509463670438510901990536060149016417188319764880170514179266172094112236498481478444916475761385823291646091775756890528818603421673800254679930578906420122581764222981538829296421619654422232790221524418630448350753632745100390330775065548304444964571947913624231635673577199672803344321427206129540815007455477660446643099431250736979532463245763997928694605505690452324373469067968284746027783930149075909842869689648357690938775557793449374018831611507354199071618092992328068646908941660707685192948158566340708999741845610015638005893315064192456340697225725338062638454820853243012721578334511269860753568442956059461364261008115681770545660669580039303821164878399869785954832575109679245284159831583554431010211297034714745613303911643978650106079181128946817655731625171997313085342604965512842240405602273520595265528132060152415036458145634797451448044628678000080591046413281964620725226457498464841127597287858639779150006804312743700726552020288260871452070617016614127655013475084242150196942063297602143274721814156306525906268635238901552299663370702335587097595726652148398481476029686743608262677927696857841432290898025823167476362766375065785662127537742297813193585255165702291528895481241904331270016080608347738770157592840606488680923451986397756877356086203336548060474551047165215341557937040699987455328182630478366241266069332281526472502242925002844673544011149970755958324432508064441007323110789513911779591700772277538476405089614818228112243954018340141741178917315948123478329566896148904454509733183343993308153112710569340968325279072449442961702109059818032884317016909145339940293314937222671711896779599344073304007272202055173433914935423073495167117981708514985627321824548353833280670206210985765418975656869295561420934821730226616166557600209053955328893652651610038381610417834297462508649493709402044012225562739746191893300768293883421642278091400314699734024027644351882731747972161978456938236545575861228176752457510826115863569742241284611227496497214704620341430175374832877899821207935745821352431162423571159536301229566626508390645404298380482968092948636107113088168271038587471174312629103350804432181955058433139567464107778743278742637142187346733380751413811890134641067260155444402608639442972956082699784875691776918403468398553499188933683909872943473502799578082359034373413009761488489013733190114143153828472866447612009754670745339667487841640486373467898651024872393599198978678708459452336341837295336898848036524403838357157447279843067538797445532608941961485029237082432746174221874399724803506069181996778145258027224323290333897935194585247719835371410331717918717171637524940469994583840251861848743429754695360907969674303015205538105380279247904892225137412508111925404624330430699063974810537183579137897951230590433942181532124779706807637698970466825933232209671927849967147339267627029269454100477848145027679775655374003891949233119517452839730489464283726789410313656207288994292176758771523149330914437960366264021781780320262579426001074423910303804622842602224368140754904048931192965895060409606773210524135210793830061520363897297402395124501146794641110910884902010687882774059748388012355637171036881171666371728421917760101055689545783116601964455765439393711093347662455679270226659373564606545994521546334428610332853532578805943741195081793411847339891884743239956228402621691294963895242507471308789178720335987812954407089713590264433406317240013762574335242400060192840742401023624100345027897094800522453409425766619193563277111957246177833391428125992695375285802511239961926746855215774055760799230822456074288286178118033895884614346691996538502064964719475961917182346863038389729056486509053890115069823950178767238055487735793063482408067166020860321344455597197878367153490060978108138719600995650798309360079019006525389922703233487666157224111095691970590484345300101725227501655464720845421046070538615920860819584768383019122022808413984162716562246229258803390773586600205217688033451504086559293889291475759284001101834313568433532122197134054035793997951174897648280622183710827980637411440596594537910974606362698988450313508124024083275437043460857402570042667185042155173292147743270972539274649533528689269636251332204386298869462528647543685324781975000614478880485809647418132810141536978168764035863776212202278374259138379663509788868668668935563277925076977479425709703717040595651800444492269474825041422620633009972081924819527563937785088957950876429981979229900734269386083433810842913616126210185309203378306807446612255209419470587651316639729204645711551966940709525639934097878932058982997232246542047604700076360015437182292283476419178270663763468568325818439405393900768515829464332331298344623815743754738268299483200260633631480455229118131033252834026619623309666738080629048944676921809008151515560853926808668019986278532111897939393343253276543128346237592111047787181697601419972515459485476275712309302705920251340710865853333013211282794401620697533398489887890804499791158327648652442453110480709900809625991163904958092227009660705209841828294192995567510435710909864883462281096242088747293169485464128414764258220084073424866632233960047873810059345211896739366751827929661980959855366199156963903019137399001933375961688634222081607918431973056211279656479025538313747533353248332023184941527611082892980278137343497108879285351005246527330354855089540193314444031020009364807796384170723823409645051609644578814679071573110552057223039190237922880816959769106096910917361765072597738589064774054808464544936211300419785299495029924642844207560266322814442130510423061407332539094666222402838852661656719974183746316227478419719383067428215792002851851437216265644938950787239690920936293501255868947799859281722416760796939140027744236700051369396736150999435573727542599927067227830796595643303444685162493215844185328153425002152206822987656272746745989980408800728322593045334162608748071940152061306659149579438402027584084679594542307418564689412429147387053750422403773302623378788593634822842207371039892174787184282558918052056022440791922955829852852462295581218698577753136181973679482772960859443803081248396037949980871580303609488459112418372839358459656307003230471378837565172570219699022284856227878896984054687339908539056742539278618643845240232719636450222615944209324535828200005578858831171754233423140883645820293532003488709637500809669185954329487401408564750212458127136506296623806386092059460824731079380456944284282883249747547123901308912358311015615323753741692922116581027686127035871489247736945589853594416450046217260990564687431036777473188642815321279766153210545236816167631350162724908134104595898626568953367686759049341265252750725979684610135813290603407773894284585910343618860857063157996835252476304182300062758618423984071960469106147308998533992659969192675096104137708031434435246092350621135875761855900096876483783146107746859655061592227855602102796854782859122102650344765969759452972862815066396211591210061959293909566582068377085456353548980761013140479107284380758392798935263042894424320672216311216311387801446097838068315396645605905227776628485989048261423962297181802317887682285131298092010358335070315223627251681396507491132100940813134094437304487095552064479715847777341271273023762376852610651801127605426628251135758955173202976534848766649186384832073111260152804604234062630994693007719364980602840183632241315438883892977738065469587350465045268972963268203523687358473248559927863600359289775708194348806644718230359719034565389333473327996673100123312172458355987253900011245507920602407777729426610310366963392909664791929219737637147683505300321592625248849026392137131563262759248877251355307002253889100163429561605303633948332099275248668348180325323487033611960651289792225326153741639111820383950971406889915133588839182327459946330711330157966453665139976568829662818114073885699665400493978206959568032340525822058177851996818701290237870936748432004276211582600340021887480978163376658869788929557747248712574507324559611709477987407223518790547633445792668523617313852225440708868837693909192644442774458513746940911106199069008765185172259271117153458413970607036551954386531701911142069225591283498763878414285220619255748231561496031909063222631460279758216167653485838488956273131861672190656006316525127587522870198300884404844848182982391449002040101664947123366069483340195790477486768436917675853563402521876613928837849201487379789336411066932251672991562576688171689396058886860175883927211909447684854084362378706922440249764495223706490035614989236648301695512064050405062073951873457429032026387874300234372018040385284374580134502500873731760016397876542781565278258839600225851678274796907689604243058312125717974048336340500934386257860444623168237910215919036982710888872245204991765605679733249997408003278407829259293211190454096994152110918176769511956805272950638301380451463110167824094731147838422514091150092582587302151282757434354585481112001860483424873148667590364714879620403025425983281954714625059063941988883309238719732204291508815408965110883739239571041616769791413243902909022110059620057820224833208863610362629354571295712283700785343115506921623318677047313129700142216057840375158948662109973830510242258937273592266046237600475635293203885500982910996368538459644719284284371204359239389821309251525060629442858766418727821717525153152241579874673814422320504873058542033257571899402762015359508642149867057897933370003076713948362940653638680574177559767143107303790001318524170875144866139666740915397475293002241652623279763596962026447739877561863459390344140372711839005636114578678093433264426834629023695572303438402106378795707608739168910564938049689450347541910545971594750371314982323377921723919607618029326714472517068921001509542876102545950071811496229757689674626274417087325066635762618014132716286623270352538353395729597086144509995734008937643273835796343020689973757340544723791593082083833553386019898807620474103835386220361367640369432707785310751487984111121787647040875017347732839548903502405427293317352653375567381386260317468895933797722109777265280485253840903307117830352809068025488393051838869066727377258525707170737803360362844844265942363761024339807722150691237607960818299357536750582752326191294777343742596555353260672469830351716800134011304256777679304784277942981110972738207827344216639684152751951881885564486507385994453118664829491553553200656103452618933527429852919110111006780257967974365247812100210049786694296710186726280066729698310644130295382812619849162945517818161995793166017657177253200651952516689537041791889347406227432360822003694595042302925664983255281716796580244039430253483616132606797750222140175344607061570456851239010753615907029461737563444852243975063756116817176350118603153682748786910856375438450410770460673413797444163485712697840451887199493855615880902301897524407936829446479384250498373721257756006197086679098000481220277789648406287164566819287473879656778195208203370230456740067608692831295325123752900778406055628546060962484730362891775508672326334313193283108460807735749501759344846426118622748926923946285140277426787571403139927990314802804652381073544838076922057011498468560062208580423738479376188882057887712390034259907103129630969286093774210917647309694064645725640506081159034395239363410922253923749048711457774939775006026234593862858792358019295215151534919252337906279686086949197588974793575036983545364047063307831524731749935034800400784258818350538851925773861822954137243283130922617227632157731822818573722427303150250832012450631880892807500271343677169202248083918932672319828471228342131669404187847719088475523426103851679388422589354370168476931939137984111958307054019430616740495815919126965181566207653435568101733988121774667485567411757882539900463784072432303327219936676466088165657413524445865508402676328644184787780764616596752142907146618098751696191259599098060942452763172713813100253997833569957651711391646537552136547998654404466918414077811962728451975658751997425580548441606041989639469760808113218463502186256232481514923182808973613099434076531400754695050720029727165517353113187505058162801371027109973776923570096812654170279380410236171482382046242486847837683439882171562754655238259021578993875513021156411499524714101583653548275958594336336494075722333330977764142175463241694772905742998709300404004381734627430119576346884477586644733583867227706853682361651445829908017737342527046134345229142515311392233650932563421009638257923443515449798515186713262805475316627995190828764923175588083462467472694368603463069369379334637129466413850198937720327464327301264766959653329654675832161036071874601969366449042690627609586183279401569902564343510759221165817487475979463524141741483051854551733141052376562620336054463692573964503093297234755928701591429151119491638387755552905427436678958907994685576919841069116415808265458393591649845568616912085793375105438541888133182796764680333867779953519249880290049196797280761256007391978743628376266648397586812579857969380734656891716526704035616126901410707652136828129447363410782952477473676918583524542604999783702196693538288491196551306617785722737841011096670620346680866627515663294030885656786996738119746300160458282871177129059668375417132083653473808269728909267165094647262967370059431310936751056719289261963224954961756513253515252507562757406281789916113849390354188226077695127494208005826559565479838594020509331501327122842421276461326942638413698835304418304964348748616129966852103087055263330900203032630338734696369429483312482264110539774602787045034944889997511360520518293486022678959939562616807919747817483861058846169140584215105045445480967435415023684993557604886639027660579004559810340973901912946047300376872302283943766892923507279564186254901785037919328343377796051883562100193252630569851555685497153698232835899288955418767861667487633638259037683417733508244619183270555567525285039128034092468639726026726505316477877835592052438616553582501684798534983959986365685409496840801630811311051305889492256663068003658831018407283159452149224210186158583007069953566698163401105949493144544712538698325152095654184155943957714151411761114320397023302990410597645182114755805366871018891237322382701344786934263193298907054368123007498623879815982118977483010627720534975438065992518656986944701308434026899534597680206351471886924746283403026700704457938693030955733017407351998042204792192493010069950157813320042286658697526156871996368753329603131332271977466027946300047262218720632023242947225019342435967689518987940063121981017661026496122890086684232627952989088960513380664478877557566457014030516531903201359453845698846380120761992348146286864293288740776871464517857850508322700926188184717750617205801112912683367597287442778972233981658035747746060470046424806392269274942363076459065198011364779061619327982991368503897556715353849927556367517250451674906050992200465323113649927284895234222791699056483562463919620701069097198090629680360464732091847714305701853681161185429180515129337396195725994936560269012867410395998087915777234448870699524415107718150480163720177754255342947724007520109947539609322437834991636264358644533198832755109291366710028583711679516946001834166913817247112606201887651255910738434240406694326333704516714730652264768639865131547531805037921618463190332877941860863394248782266315800010116925088864990914686238847729419635291867856923718686901134303407553253550450175432695283727886342707342832877145482991787429834493401352040026183070071764798453206706397441455766341267717103568964365557773501836227198504132383122438475237310848606194990905056610915373981844958825084674403848779474920790258274254406266040162736996701242469026475746431260528420360062684140776339910499113709316494071000637304472969392897367871963310210263682574844788256752446584535574548423589612275559630693343374296593175662698425450160123232946118353201631587721341058297830252021061403325266074332210632011222957579380821693001934901652946031613289821333061029335614822472413564434171326737856845689147181397484780060910615286721429988908952489906721014712464032061388659023818926634376195897641574418744255951802879801647978712797933284863266017621882709336211021910444310258726690441262228600782755547640109722006512936787305631897728302691758089306465184706483170615073800925434558596890399552519545071647548868428584603481233601888086309351770035595484159363739287000390186648089665874669087144097290166808025688885395469542057314720917686252342002915808707605886681507207702264695370521197000083786863841272240031880315639037201796976710236199410718595865943200592525786490198655638350056634367352697856769507429234276285885273917050947371856652098137781297648128467229286655817209216519857103407972587326611951246241342418909280041092721869312763762863232627123186883599435197813042622642221213905356851850413074001379219326097880070907714684775328605863748781318123390571969057002859426467996640380683609311382567314743240082810545263326073776583374411408327882248738611578750291553593560449774344207166515139440189299551822024093891620736436549561126027217497623626394610319211049404159028689828257139083096446888307744665513275539945639784059147912540739302436583001145441108369200524433689339289237760936032742958238725782085065000132735035861953251693043236301960151192354124156202209619555438713178856287071288938371905314337603264266928430832349693193765171125945153503409319991350348811290183179173904983060566724874829787517439881492787683580898053624549717148576784538016021261870044797743406119436249987337724885210277064083235612415973055515517900897446445399252894780084141731354143398597178445561912480167657312106983417119303969640661347456268822826609322131109943001993980966594471581507242060829144834255282060132717339152900752156831068724835364121283903606382418715860714478349907405725868759311313592039926243306796544499405620652080099491436044396968208070101711968848377948335417745925899116466185374433506563089030267651053289877290616442374570993510466827445663821741811040476564249608680042494070310832066442179148925474608511641443767577182101176000071423122382606749203206107634171265069880769592438066388899850112582877020495402163747889407559785705374599485341128162640574536168673762708287691107602116713864730711293552879083827247652698675043876246401702113630350287387440266303032205240346432875533251665999769917006820780958031106947345351386356305611264520201058180549263420335987328845636521685552036961088888700268355688319103663348953386121015318670919907878271026409309693941071015073090534124448690030496294475380277927903918446437628955603463885788429072738045086270805772821886249595257796406405061757262102397937976465891724457847114889283491831552423597088279136964141088750132728299583595842190241996522882528918768079129785943050238842020513167621435622385530257751945700732693524761920420482124609791128154937556164047645846675709111535308359866253188845167200685383544609685598625896464437942451344398805807143743550459477964684543221559368646690129939975447012118019332608858671058971389666305212500453676867769271575459922567101627784092828656364382490710623063211336049715936847257491079265811999782950816370437163617955059668085892509560306590895803781891283968553567864450700046818621143246391172071643931440187836242743980564776671779697579230945984046622638213371526696570451489954544430974081751269578006572735591915688743555055824685419583868634741312898629506464903914617468299918294998499581708414393673129574621772175311765320837852149655569725428443555225262505659430998264463034695031402430051952085890071338459128183628403296731680987847496703200015921611141202158905175773581077738354015675713918672984771745082492416331298038928349148564736179307044768756683040089194077143750481825347741794940632527764674189341231859699159034873333195002915861523149341561161130344155336772034848720696520907715200939741329241531734714177228298701463218878588275392930238859700903204384942113572438956227099278813544175563581604383118842337961785177158005852947899331349276402252062204850054593651355036550075302271788517307273838399316403814039222180144888926672478708909770498572367743313972121368887385576644156851078093235772793072502303046664760168473293529859583875135626880034478829664350888784652654490168491278790442926377118189007408181492540399749579436300519533821199888514186540006167097164767459682736155859649199161142563772701636474260959350245864596500907261428363032491996587602321741653046346830930253279899788788992821104855885659017712181218187237628639416855890398548705713741774039999476377488624374981644831831093980328723647823044665143734659355960250371218146851422670294325200634024490489255108410518310148156368800931557577987965185080083624477089820716517782870561655102934470996173227523181369436721438088582424958385683178313300123288891970097787481251895427784352610019270468186147001945342704769430782281098692249855872272977172544665728910012197494038269825366993224423178591119651229160714235549150604657563107373422851384843090340774947297399275063065445961879884134615458575278741566789843530800607743641194363624439813632970009346176964566388964243765669207200395203669717387233453588227143794802253010475558467509661805383724128430120982896771817340031931601419656905526641687994216756101585362431652215133310840405332199732326530168687795987724410802207429106071634146397762789935449097945941757072211782523320179017634849886967187029615654356342107895031391094215242991479978300331404517698717763797118272684526247555379002049688135429796697343656869603079924630528681798495521738565684903616067314853012003435218450414739390977865164427532953323267050701811150860653958930980373531815095933715833226831279778111650823586178226378858732396725365419545914701383781954713928796643156182536087506671849997006112893993056093436585288689581274388420539606892593741871767977146720416795773118055175573579362865723310365634392253633465245740975004382467493877956280737858351981202084543521502376656783038033374170280339180644024776487632461488443750725982111537927254839775384130118231453884098686920652883954775885947802429331772683811073686912991183246081170516303259654562878329316276970972572152269763669153451193627901456811023957799266616857655978692540543538398956683524830927508825948517568135887220135854466400738882639707214853461501659044972193747738618300660566687169519281988803595797636859024825906893650646581361408677916593778830817202364178142887819640388190473058299368879295453711953049018855928670342752354051534104912656234262507372989110457010548099720934691733136754565697703181352837298871968068528509169522924837257256510326632466273463002068970104407155644437883187863826785716280347396023847673216762711333881615961375226524367430013801576925316739416821211093121015208907692716642578253825291879165704993935243778652222564266484550079345777926050524504422549631338818838490185627422371633693200358755107784014725074815172406169413229340094922807734994772764653521554685872426213719272543945159300734171034107513811705759870068215183245507879742617030527716432090952999237070942709062075912552557861007732294828899601714733813856433785065056269412732214393637704238514394955088837051364022783946606039045590886598343562177874855033353879965655972657403648644667871727538831408778182033640449836554342599216395659009326945394902616436349096504482712575781716277972875515580842642808526268181558441254149540408865007098430002393958612705884764595087442805488139358805259765390126527107791027513444802303651366704825807409272333129010115120269969218594723514477604305057178242730074284963847498921815262091492533196009284750877821769838085803631110022870325313936197062450519761853881357408046435068703736879677433743648418058245920258318076761408530580145185442323457568095737492838431063039825470155966844067273500534748902361911714734613185983289745717554081933395602823934802216078235424898137178681559751524821807385806202664259790576486210572383971428958577296790022725593787699620840853687426760823618040582036738956227262947858849025959445736003606462628855241339859926986502959683691089497900898277686903090213388746741356626233862283967138366050472577086554899707782392388045272930229949575738324134376311170759813969034366514104950071928425611433884950349201434888060188730010346008789689306408102750337746740282207862941966000500699481653070369737825515076260334513370964361978296861194104296292518754631689944875915133220464422683995465013917779428378397532966615481638740836879485350119966737378115127658780437423822352450850885965220308599397044940545468135054666794313161071850429132420206777584929963261800153750113776913219281568481234583531189071688327625227909342411809120942131907144256539941297273965260224780291955825348160551057267168910479190620336284151625408633039151453236680532668087735779555176688781255413805035345825270751166923607284606912858953130887566424548055851828135505870331910887922120014320805727351867608643912759436609528098371220902603992523823045046842845158985812108590211671172314017278803130305145720016386253721171714726915153318434644753768106563164223275715559613768472143755692793035170211757523552232691893304451809388787515222165400648655971890529979555327873509859147339173665156886732833707136009612458028124504359871863142836368028651321112862264111236229277008206551431048885358700050683121421064837576585263617577589624927122051830639522454064547045393450201092187132594990469425352878383095699186152568065122306105185048109560396866555816162528286170870226524540749576531064683891877605515627464296070453700521213009905160419184788027809554393866089673970652470237070597244301238439357285991754234136446952809137130650217774504999090448128161227546445709381853822856416804959399006039081968070619201374606664571933157520566334678752337047074657145372481495611078857984770488846584780352112798715200056867350291954242364948968813724362895867565506157802997142421464051379558089967736671287276252678410535731150333461250583514450563623700754595473563360386651693592641919061519995053024361223208611429038699837097769009262475543385892722694412516698979635540556368974620580056816452717923382921882980988597933068262861933172281326545806019651566896525051615132569828441848285090816594143905828363321560766250445525561959119737372588950431510655614627133445850233016539321038253210982313977015415499654072588903012247232811322869533340871963183372170698053037998855922856068969376308888806185967952628924810817336592725204736403581925759249505334722526248555344294769564629098077008168630611566844107615590496342622073425224182835242459642459739745627968452067873402043764355733203209904496034413400135456463323528047295750833583015401941865390301743859055957403056197837718137504664695530344063376679952948996141852636785583437557317057502525494583377342998153992309669691709409262044286124952808364842434206268108319502174912491636227814234301095521343863973362081021929626496149118260919573672069993264195638407162091782195102831130492875496935362497835214104690978965738823650768682506487337661424272394587085581000003633834183490092365539546305454626310887392050889979717607556993036553411005863449925940394107017958230037399141743759509396361464971091203240998356734939889406429240761274605450283412745590392102972377031955208386761128197522777109946582770155182778526719182198109924584523102356418008392355503019936320541286841271602282333733798945882224354497180767209566529245138358379500806223376857105566837413158652440521725451202545352111436251658533982962582270056502966922801238996675139693510208866554955555410602173663077140768514064262941438494255934586231887960021634624049926414110291731974231266742424029499942935165941503396159584002304894398594301323563433804830569301998106174442860411561761204680266471549323296653746624454518371056433930832827536366838656582236807969797182622436392347184617931262841722018132604100958691376078101853501920099347158606764818075159514948395577355689195976198207690193287688668376558809519814455165638979483220158261500969353419624477627968812889111083377015957892945168422150578449012822816490908676727729562280978391863604626447375727294007135162985287033977328111996047351061308767426102404399429994766855206507184052923135631448170806244321888636786481997757819538604328027441201448774908015781383201475862366023455949233515551158304567500664065214749014068782455762691290518938224781388537346973090332240908143545233021930096421153793570377684996363161672790279841429214937178696403511967189415637543432020098473541499313126559980763928791940864938084936204797179636061033415863643929726947410675964834153436314383092343102330870798842063436570994345653791057471032188642771789193719999700470438965828854186781581844127457590511851922398724039358858116189022755573092213341092529463751524707656176774348786003406521731196487151799202011209964489999569406937244965802992287089024845011317272221215151430510380956123198862105867394681286238198968348477276130937188128894869416470650380930938656731566935956104875604567380638241634382904542904861347572726244651373779629983865704944373745030788987648086648376672836234886269001056139746192679890774684069401926211670493453648601970356661440204549562991524725231892478916351792063814552072182907947926366308637694198057593093757386953088513485230060200630235673797073953453232284903868776076871767034944911717017802741631106906946669944925834024348915463919859048867085221003186050775650168570017909854640002024241021561467415096103251084632063612888372644559082237401250592422367116778893685384465389136370408748264030784641494536517008404568945801309147907736239688158808759224392030608494213146799550392818314877507081664939506387076613915300692008234038293503153787535570378244638230599422752839481483300346210243456682677896005538157394008742370532526276592155370883190496963087861706922772607987090367653308661324578224740050373118693087538495756134452905972944060324998318945352141474612116872247296876697767545002383703773454506812547903090427034646226755756349140116550600013969925512497279946489795636141269441950349141195380589361375795297358675414181125435945986084974467086479371234623355537509843328518193714161415097544514505178992457021080079070840154742854892410747746011067669909488380575704720954595733061209940644062737647676451381889920016536883844592795851034306238107594571840261034909903315924883104853728947669914388406104291018451487647182233014170384752272644977281527352791504123640749103353780504805642515383065970892461349388339447417462289461072414221360408635861963370998336495725393369344951245792305553049555234579134908206835867619031955387632720397049606710721806158191901212196566345735245631591776293541045575468273480007930169642664965764218137315611049219946377186642651464208702084783473101444251290809809682214834935043245027091273265401848618305035047231983365588266568629434448248869145115084521610828059215460967760440818898796367786512320944341606124712517385744803256003280169835277026626209050795707157424654654913197396072837511708463370857677253176784164548537414067451660033533998186436105804274249342783909849804578872366891266042874927343540842457791250213889122307756205843546132468104695233673358154211830076380216118849843540203675069134546694479789917491381001851760753299378602844986417490369393646558392839317744278715090136899315511536443234057202185621887436076818853999012970040387478810305140032747570529987998991992993742761384111475620147942589657657678309705521532163308118194672980374291686095432150878846466146322365129989128103908171474274988400641827663756181761847389910004834516482337405915395998266796339747755321769637209461686520134916505745756094963610254688964145193149716573079123040857633598320015566683454688086131281418500570063198130954285878732793033377499637888240104873290647970792852251469001681277758808147072717003202080299093078341987289182620884151984781050133707365738144186304115823701730298547500218422644080899231376936464947598243352174235864608072492381731492698235232925506074748460772910289562797586487346327586218355395455891535569742985089176954427777446687321623550796557733079249200930302927743716281346147645846645645995388583936102309794606833323816524065192356349556965351467821086430707058884446512276943457993008375579321965541147726592200976410869523220448212623483807670322907810629393357567467989039016688070577454619359005648230756494815808119909994419885546102829378654323777243189464947456307671263361941751520968136007581265083310442886965211362200098328991406804222679250011585438917960484877958835583471163540591206590585540340612868235452013635025914961235056800841765036372988383795339025054958785105769715483168672494325671667194248912925632676269732086080609113031199084390272178067038460265346960996300503009512909350895906298968927008510418707738260781128220326106464599528592380187759476461951292030382944187114461889801670457740929601426565286083351114918762330429476670813533021398725414406759052203513479520153333194547003604095574449987675188431166811988068897575826029482261053183273934447438175825704414935788642064889292027934554263983435832696353429110236430913229970865702426960554946504072631864658138626967637292126491972234322524537964368890880741937532682985747310205878475163354957741229856025874797920131668058805128439206465872440268798865491748153807537402737251864342214679287835826029030526585086184475393910667687111677600167023480550081777078133086270250952627542497510709839979721618776947663250719345423136341638189886777011114047923809643931437356360163814733840169563477050650870629717549900895851268700830839699854380445116997895150982304326361144482264198256901599782560376446804449598326956712877472713558009122626126407752860662317391654131131873735359411466722386185620625934838295527050479501523300106299665024945103271358624655968105659814244709441269767210016085522307026822361727348102549883713083684232025177444350152081091489696371879076099148175517385343571364853161119781315327711300379690097326261391351867003492652607374328679288716206309346279524659682566663337580159978484274453299821377879221703256224939492560066922472774448456086390088380983799074766959545571270040601713856498440410429994168000245689364052151218755160808916197751210500710718658457374493557431569673636148100743363437905232800541568020698094495241796822077953731386209144299792849106800912691703400167127092207428341111315840006906456503442203941565970666432615863126538777268316248391548779880487551320812641517799434595182778552730471653728925186295714967348491450289507958753659077209119156503424958387677291790316540027706075810100864842875407373198136844009942969000470103074568671232377124268479976975120206133652072837940908974433955715539927203439312123223303779919927913722454104161903961987823396104744191668587030571594835024279517527059480421288541179787158008011273411767571788359800832614335453515962181708259435250416986260827003600171808158593841418967350506571318109815477589954900048361736889199488016402361505104188805437626419068096762609811997597991221833012255333953317323518697793563074617142507805379934397555186925725207124963153618496310117323384307627279859685162215147768180419893918964593084294348775531612696127117817797720699046205076685434828749749389466137977159612056922940265700743997879645411304108712722419719121654500930049509447661311990310448238363591428006203485047494435915799241100376305795243036122413817650209808578630815116544404664315351201639729725752963481624049404401717902146628352703570772930272616407702577691562106921151710303346110600244332583003040201606062495131833537056880491591033964302916700286220571244894831786211172691143731054662257413245906127348637226874111236765928152975388683587924885359915762281340213393466996059841066533136613461315661658570166806404429400788165951080072419787553725556364154492199376183881198790351599627144325410736043408265128857381936564787747467719773087547500429138417544081518528156646366587489923835406340210189901536998827868193463999159505319290728470947275097357432220990242530336828325229463326835496874300467301687310332172454264797533170620824183791927992265609655008523628708885848290552237847399950240179064083610924533880674687544242302809233425036984750035817316174401032688329699278177202842186591317214511074821824116710105611672130566576717087381410575008172398324123766464029056714475869830299284400712292299600554650255434591371871195362342343813154448216785195485492523059622027674371971279358631369258272048961156942119570000763217814452341101998602612488490062756417362792752774555688827848958211774985827014914147616472967106137709923120657374037972260860058269037366349497929449765871638809528800171338815259053147856482153865230196894648923351299368119195114721707194837131754489264257717258695598082303494218388604494385819466190185660809084165226213556581642840449291973840046966789630739701109883174370897744029390762774338377406580021750983781714621995378140269754186464642858665074420769394999153416997493126309554079209023155817501887505882905269009908431416865534193348655493194508363252018031595925491628381693392650223189286112739276383099600901204872633547194570130185213108343787225985789033783047689038420177254034966893627398601859928532479770259146907750750510509803238847520056364648420047331309840750433953963214376507113465170370962726664904320665338765780152685221487448927917484814446588856910829030494555827214697575027419233953836875154327288562473257271118939392731873563877744665378813410074364703784964168313689793153506459381069924045512113201645780547026122267626207788630350685464810934199308531878523979273677099600500051385721083724820127451466200368735448755403585672117939899847005895387328954211632480334598255649975137672260299581540330952458644346354532084087115022305933089372710689573497224203731359734551209823971470273845712058788769351454803433289208689387818227270907845496137288895733660070675884802892252684704774060511184227269476893774988391425798525477134891340355214380534361484970611717691457607537497283153563491242281607383676317165058823332893269698012861676597349284201940510763253155653754953284216761974620519466787620134990427229296681288657066266642579291938881731610086710114381383772215143725750732644907617988619916110969063891209288012069331406446018817553230438316207124158698564273978914194264675233621546521693145554087584188747616050881530971897321208841911992563158485175698597927244449605676922439843366322261911281437129343605691162087788447676505387185714482199374573904142062899265682903939489457601428324732172340420425859421165046945684638101663289853817438936811355345990477240411960391379090458351921683608442563658188270024771238843856137304900111851531496306584783222152523657435962088580727345763475184135915718182429387482688420560574100312283673783337854389418615576171510422081666403850692577126940314421679472508203273051015131133368050907175324433984208284032127732208519908435217323517978733576038691178446232349572231259473115201715795769977301821124101765007619822998349388004933988717146982404841472781453993222304805324012690271436838176425313544883311561056088527464707651802211439659661533997611295854156147795563243343804988517836445456907864111300599641972312122708483888066462941575159548514404386896120412011425875128657097864428277099282300576052923427460613933311119821775445366542284756306411577514133950758118943987347010639039546128952553835392086498712457348865699300002158611964182550159481861975626643350850048651202668918882555153982372088591773782359549592829507070724067190654573174677399754961032390062323296540661803012815611844457265564768960323197222054261633026033725068153897452195523097596602624539453311788315850382651046084674356904667895726582362394240307281905656379852655063298783953533526934535830753306975640422834824602804396156778778897465932452573359418103807712674836530216846916625648909643384030328689722478149805169025122950782879955030665377754959878261607884273592625807698826960825918001392090784131132185912504337514985226136112896259138179385029786730538168441253041536346129545070189402968693751611706756471870655332174899372020745083386118000253230892643993778206937041093309368676045105016100490874588381798657486850497479919530462279891662710067890039496253999136883602124057257051495483629562617287972405380126294132805678724030122718748903435435434387706956689568956306011297760304490839194431704034465354978578482853354628833687122324961782734054574370561290090083231336196606489677186637382181315822504024110572356928046169583293814301206957389737408722848763023643395559305649106936108644740387035264512210920197943275066206335822772208994657082116747175440383159287332101673816994480809939788483318083318076704976132429502743942460499681020969077879934841456918138337076504985616812822971100897055638908834872658749163238676964854607184206655415323846651664129432263004265333542115066496584616266712192729241662507250335827811590063805537318829995797578834496622926433713323657879850032490115499899607965248637135686738100051516809385485014547119876500646568961061203603720728181205793370319560173836345043919397627467039294995753005423490475543432891454241740085613573503826497111216934163675627085568656333307860327580118633593896067950920808646931214164501928697922432003227049976755455303835974822429218594523640365691926423831552570817787294640244967817736395259473826899366804724460995524684833968195019541002727184059412322162925490913291938920012133947859842358311937862405347869015706211030077105902380044020021894982800340005182116292870537697774504181119282488969289557775413713041962219749916236858375250433652480158377567240013663250283559106160580362827695664027066751179162554836432578871589212251214986220013566111439563734411680962684297594347205670151891116970257172521680043705445160613885235764199315540675610149700111784955154719770590141700017680233606664820520705278890436448159823457359734182448282803983156269142960834313926725937987444119987980661776187850106274694765999604895897128725276244062088587643929880676443183825134980176626236388843949918388524146978704343358656260270707140146363008969558930375603716629497033013293632354922382147937851191112391319917042363991341344444780198988081431656342556942950082975101484247075523698920324684325047505303850766227663199892810626892776566725120929238949108069164916588218056091795164247371174545414858147197661894809710295691874136046759033151189237499523583496286050911098713724472730584003594766839483194247925269554796572139212593851137958683423080674124082184060014356470791310196687098995162558127427804262879673260856958983724216524586111711625943638221781729148236814735216882839432944899013448830215115261549111583037988285346311787327719456009528881646781599357031203617879013224616533886167651583389696975980267320368343337104394584158252926411688920096542574189262584928380859306144406482763580698403493563826330325671067970403476972358062571278628716155530459082450085986275178121678533736519201131544044443739450106117723167308051911444949191151433350197488245816945349500372054781785904287697538583415510301969681195985706633637979126903049741701481199652126471581378589138588652320470302452480243436245157077695560986461237274017196083741082715009867621921480990591696099087847366688242415228290738813383615776177242951984342136258117946311346208543391427713745611214482469374724073278700303105922471034577281527193925427138205482361310969218550677804016563513198017473021709835344022402695347008324901405794845544894206187058345760230827342640717111656427315535449769510661511565757990078491270693630165560797202089004139220560184965561415488341936719888895094764442197690765035306273960483730537437923630121627012386590094667937682988718546783701928678188965220682540976363194055757513337171213252343453209935763750528447149917566337356135136630270330937658808749450531654186878531403544739026636558459967412704308000808205900557663456089996194119384835989624235251934247528323766895426127399109914461207499165585624061035840863474769665973031883598845511716881802693574172582367814324490845919127481696016907122276126210224581627909216635884066820621445885180003482712790180842706872719892057136589348730245063378181481754817841938067052791984555126105036736323873877896022491331803215260325638632554393543145521921139914086668101628522863026954374808106106532462618538890417642712998338060761676400099425331290804014924606239638053847477734874620515654833471923839990837952594320978581736938595385111541949850057567907126278158458377062421685304543549069803902218780574930907668787753435419724116222901592994043668431965429319697016312705792002206010709747746974821634589705880885857543397725963008098663615483248280611389341811337415373025327775077667305137131983982366807274570970058257896364573207329011018259096311812795483213911550362697479255107954207037027938064868362791537957992252645127774220919732937503060282351469550612466069533273615594359643467906729265889344870570208514255673247579629999957283263499889072575475477810106168704450046147987682150991476850672302400282559173808293526336573739605479503450238835513669862365375311404724706375500503384259386911098277290178432558031253791146335923030986556323441736617624414786622557856064029272885942274914099018050557252533167609381911273418777710873173670672665641948824303816152639817979610539136030532052411643988293869747218396304588425048765616379509563296822414458776727496866974577310349877294387673532289045169494559788185403454032143993536791689765265961111919697735034351716093032480685255631709562951488253765878766634458439427303306240123576198133688148068267227575662490404522798962718866123803155430394614165913832621216066588215198725245582505798766881474899198025268989771634954419135437736934245004364642202776929977731950441561781082938231020853086098746045686278708945153468753422568599944813735274228916379050127709855860385104680849292858289924962855119936942416876033796595102087778943471899690691094175271326320845019459998882096912689008639485856891634536976048332083277688168396107598760527893716877488231249484674162070465762321506886916877887450589133300562503127184043337972593144972436892920072405830486564784063924862907667383902972230989847616292551525059822346167281435570093013217867766544953443753610379701556829571224384380789951178973719786335463114523687056659826453938881073404880778990760048335101153269860322355241324953522831041812289376419172731686075287568566702270468243465235839956629545179841038442092594913629563977267995742259604666792526485961852684001507314764117127026894064671388468819359968744309912977458862132034696782795385097309279124484392278559548416200464902611903064513328257108195737497599315682953000503620120949628965931887464402459616918602137844934947299395872436852788571666397710612659695313628611333522817626246896173367045604815348128928154739009398051713334651631126103107506180776393400764697389720363065409211423257780858215486724825667819215314799454934562488669370613186070913409203798181046297515367153411958463155454630270295581736543648954615840988993692539790986018045576938832896702089803498371902595848891493808278352475740327646474173417360227312573502843383557802200046962764869860247124489254890506888393501969766506118660419534039025086105972923264218524533846162091559785804243329659958682144690652882113798789106921714988570514374818236279239919805293179368425588730505238599511840994676373580171950237945421036248391517155189691770024530329221091399363730322772625527744590341752773871979953198572372708134142227703059161899168365568423549345449186045161561696184061903250902067443219725442310485870303191088652770333733574173471298300423120110272745015922624797673504693708038099582555170544192422411299747265073236269148209366999828720215141054431386370517690820039214447948651539909304482472712011228319777390821456430836444162811152226451385431232099685926975556086743798364943623958106747594642634087669845447210551762190161844245226286853302396172764594679112668265085871708737121524538356067912121108305900308482405118264731217572130727482032071411082967273247127260557483280616786839794923120537882168213343832091182628687509998492592765581891170367438204490565395321999078944530228235548871799160058687946276221808716797103798892432487307598099967500525649270776429421236566747928600316478127011908495745870759456924635561101968886997951741567314866908648918617330856669076890345703636963925992333424243088035038711460979894506695356829609439504993268957437531245762396725045823480557735373663326111977750921159329771347967625424781141735571404443870387875467756079432610105575725115131963450116497746391730092960952472167106273003605298111876134651148560019172986517816433893098403701857036972455274792710012576565922752374993686628730253069408038341365000585541619664270439068442673403758837875480427723706891190750126802549184074664386967344471706981047393178750347822298705086954356580217964023150794124593297886618871945140451236318914120304286254193538263710305992350977130995736021237090702520485515118890893971137420381438158369032996529780037982210664838830206817387387307672393611700025437149800869317421042156956145239709545758931122597928151617147183516336750002863876350436652567126415430759808418675937683703785716165128999368565011575333803425306761334950638895291386772224932950428863720847945949513681022554278317368004068638480581288978871165301491071646240768521544327778418543949694183585700093230530879285818091630709787177772262976976198417363874505979255296360230459824103981403455505282544116480815140939646049182122434337112500191818173927762424995831436947118943298694786432009832885787934588795651617136315369099811185018377929120452427194143465285649970319912521846934626283983722346313017982590852599545281610581521796903199478671307974902748306476635967239711313321685489348500535406922356210530861448189286283205203488379277299146340890298354802868736585208641710483370800559262530885785643498495160461227370140589881703465073385212183451247785209049662453115200124172682470637715986414141882485903411872964812964978318104925398888802298450979666400831007023508138809989444907929094917806390208429392276191782304432086459024356482712286659511984221771231034547332672566478879160664980728660015061227081226188465553236252653440330366869430103836612435254052854730754137267628320969134083145328709908778592165520579928034886006468877364074585831159000431443797588437979892519867840195025346384108135144048963373026619259248222114457742303217095594476922782935641550743943406457970248354884205404770457202333038291972709490985239470086405839969342247451034482726840441640307609443419810923317525297717582630173497976756767734372986740997818008474354949401925887743211444286360101252429182708640265668742624808076359932597230332186625704490827775729747452772652747536290726594939754134661238177363477020705538052229237269132667976052654010675218441374852008427818826750279738560456040123584266403665665571530812777924040087728864166787432719687868616093876440607739050782432773644150166620181644823862663068029743781469770137051418350553202027198850094821852074659263763533248502546360087332136531240746147970368442904893432158697331290844484947237179719087336158621296740835109991656688072624466209122124839450723438036499564265345838638145354079681108188295168913755645706632477369741765755339791492037470505839401405495330816799937511639494539629092345394799302077037582782196525722340766270224489602841816570464753724039567262936168908721345771404719835387607514531246841999381543048478630500659926776095734278808604972676769009447731316301701770244652775573159328517227220060356889015000653981118259058803530533719633187993023586448418663755118321400611642120178546755389958020169169372139771614988236858005494558255878866806812449761510670421886001153767267838388054767192472668534668915510796903141366899099905504062566088357163747515931058113181137664770790629253232444043096397405890775668003888983022447043960439167148885283894462553868991226352689797632942070793785108449972484085955793388522661531775540604146945654159177676922300973210781950764369621551419316567120831278780564524478796881437856348936112442462324113532581744288188274902519675495665957096964610322502393579492662917868418907969937145726823761401139567836603371039863226385210779418414678874769369955930571260160145431516063674058723018397886662645009120770250746449825158496318861679535895329852130972553286651733208518311395409844092627075616615545235207257156447167037105953674036031393886481294280034660641443744357085658818408604250767973973233711359896869771067847163371492307286796345069215378627193827306139957046749601490827217316401299732028760173307393178553860245787453996235733574674792165240076460181758282067323578333075050046988182617162027180737816257212458996356946050714097452118053294128206990521443676833357988193634603713751294290341811530931569616723830426564014041458637365717657879844395055828123865888699802956121844110376548656766029127089459480950416385897362973833886492843862472161819045214055264055029671342317394523543570500586641314901253454642266800288416011082348746370749197359693217191274583986809193274696818901710393808986548109771177192044075242833004698842769975582366747804550221124879813533278224396495701665179408798957764675016286093813584387321823140585789674015887307932812823625616866710192525972659781426915775641599845444198173838596961647897923542754447612246118380425312436625554832838891781949416144565574144789900609537542025580173874618216597203005762292868691927841421642959482811687990675879102577602257485475912130631462568806663798860054837106234201533859678929158546610442626737418130666815659747722078643714163513818393775309294912512833770618984173353373527145316960790672621767289065319957563085176622257796710780675978365898313344429214133104023548922118737989687086221022225468431098394936674133024628488887517126526859734502050080730714472399639857605595962432901011732991715017138669290592086675458651971481334094582224781182839520364963558277388317338555636010875204211439042461879948782738136436493984088724421827357356826489124859615607906005808980120990757041540960122388956440699586626622973833794735721407934792071300400183745908126010703237123097888052243074047751019253212697952939738074358333651687909574261981259392045857096590634517680248012902577694175556768630452163058653424790809123539625031747290007548884119149585230874783148190651952124451420974719473013356784281998422541703717428957146229806536027547241863524075402718600744177295918016085245707442827403308983735613021685499663038195459978027853372755451383249314844824444572588327155342470155455759652114302803278393128300941218087173483932602747035708337493513511914409811498978604263054265598706325105231602447900152530496631927970261636888908148425387052386316554306111992623433414401540853776285950911986784952182364546951023231606394237360646370776593692778590401005393201295292598285874071642168458479749655761424143739166604365492906335429624152342151289353409078166797468633691126383554640750777727301935940721463764879769423436478768896563748904344080154931443551559551206696734001247080829977362357402778895062491723494748829427473808171643865063574161089068380132184095578584675999837272165687938235144880801160577268463084297410819450670218965730369148544129137304123095550007794707808836885167436180836948478793430007329224288061019331475803568393317133805997273764526005396063450404527311401138206300233921176506834100361881367397300791225122709024663658340999117894115372140110431095446296850061754826941757956144046330607410483924803941366384654981533136202869259667456122369197538752273243858731051734643138719490130884504405853697952687684067683867843275256902858211953774667055836060003177976345578136901643902525859301262443884737465509720917989324443579963477161373544889394916023506212524599939197754091533411963155515352687797822190403919769623492706035478411907983618665651242078056539013837088132534323572278408652233490475692175235451327401585276178964873883534664872031218876347742586457294990781740262234819450042718926277647576865606779796624583230004778610661711748318256591637034428626142939390111034863625721085962043331901787741065283371874522834258423061278019679025469098221207826122991097640535803218354793774414623269993703279146655017904608492667029027526713070028716601625451100367057066637584903162190283957631541645359101256881364369088784434142193143381358977250790787660847284809892707912588667981176444040463634321226832981036586749609124950189702563079745175173723128601510719444614858474579268939662352639585649131813771958319306873193729305414789773071192180456659748580823170384366898840564292321480943000378322148873519402447409445261615613519123517451195466015002053722276839988433804986388485034468920194856375229950946952862056968661897048019724529626353518029341662853597239391601469632121393825887463932551315138671149589085247716564522104951575441249822848189731639518013030427543440408631022836172591470392748309136978414415920813639781491779326075322225323954164183058224132068382494931720075285300281445782408411356007566911955797553479895279499738853668455262534569487028097801234395688622696064479406394708603364361886058391949266755953853335682167254371946193485537717773325413779556445491190146338778140780022393468839042210813943126541671359122893649842795528212101568834575508962093190967623662471376879543831163675959439455414537193787472050282412714547828375045999919870540044478716374693611875324950434441058206251265909305188718865380194422523188276339029609376156682389656894932852254119724734572465245719692120769856596891700791439889921786992912096966723277201166304243661320259704944460723681676764537482161327089157590245062871959600818379267727215028975483760166977589144762306497858070520033551399559861047231591854166988617851539999392779836414568883230090664623959752248182289281436468799819512757710407554651412601616055387993573572110178780861288056451743144242017083240247378947390457736750929669409935590724206546255497855426039386726063773857781929622810397399009265384286436215844677874482513679617636137042894662479183517514283363604458566247884404551791045627253159814646382668334938217190333230118375090423105809664472162730849178205715349580327859243859666676656440238567815783878450290604174047370094484357879306090120684094291947042208925765081023437409889834566843075942974053794810708861646617690094590705369183827721432371482782113057419060692187897344834702557479400623844161739287853355890426823700529903097966190901838543294476604009995321995637932723041189775624051554095880038822757039567585605732823335599359749025751620610986161997323693300391850052786876992411755681665374674248441163878989572948241891915815822515550348398060676197843149619795034183771927643443528870766714430796973582307290309815230179379760772761906474604323403177368846865653722798876246942415217907699636776732647135824736069247600208926020818662844208337211649015360588541758259856806267150517996033554960002445189315210310526311225479645105110012142477223218612075170087270057775054205908514752622876676255567112922578527762036672620293449581392224712953634083736271794040094675754509539006032863034435319431206790912231072114578386239859731066003788114461547183562414612506136974154912533882953539183723677265767165909297165804952932548372711546446603116794398821608284991365031074726498366008444044071719348702240499433641340128599814878153603290106301871099488670036341562430426720845542568747783721084058335039102999440761558031590253438880362177313670492038952226219565578129162548984845321528842550280568707443884282925803808495911983034957153273987920989581025363764782509567058328125692228923262237037103569213393284458414745270962261224308316055980848701492988648584326915003547634940794335964106266593848729637921383717658337778950902394459237206649941507861538790678022927951340319430576559875723606688040591498130283776118263146177779004728519288605658896198216770369593795817772112722629093829912476496886183465274273670355281471989396801022114883235153974644336509442623984347699825725389026535379280034145415278609289098885356610534971747814507850136684390488926432197766159597855774731895641828961009921911484526985298969652311247919767329253108962004824539346670333300571143367245847053076469793870617001368924704915744512564404897941219477471301171334168813013754087218823026566652133870961615110080720059045797477992899528934308892577929578604413202009636011640848923542271802676998557727807877656049999209840884840718672669394936226955570049040228993734461984477799311308464730252389988377996779671551320669092802137174847982074268375114090302458957910845615806089284450893195813197028316025848555336778331233082509486893161285804955504516854251737988537193646213464633091048436941821080519695281587951801445709757124735261840091048851707756132259749520097775423748600176254860835400001608644777566126374111563760816329886140703559991680860557621351859728179833549194608780552880017158736114467526532792525144928625389424836421270418952724713011264048768770878187124510186710332875108115583371129061798021018501393829047473886308161339432242372631916658120991628078443094115197224157743697769456367978099321779459192008313772926273349737416839051012143173337663735713225945937677335971267263807084361606068976860144845739066555852879375464970918892689149506945669573960329162573417562452631725023202504491946816775969098508451715033433699236089554798028194925945948740942739564364031854407513524137247216032562138943247549280048106004631470799438825890136475396969737190839728410160906317339106424956010610665938386630706012479574895797827983036556679656798789279810965971557192537064848295888246989537124079695870133310616848257788341714933684371853326205639575978050470866589451674734659491232943706491451754675940013874857770587259142652961170860342422591750018013811809586748501204474488110746306168276607539589077387277638328271755764260449455594955192206603022074366144780876370236902957250998545904919233505076218494553756617169825794326169521550239224013888834710958902344751018568734822122559408398818055233388005660909398860084710214497199888878621258501778941062569363012343165403024750192575475634152166308362838954542998934919665902670842683706002292157804660343142818310391411728628215135893502146914550303159540260975358552307312456693595711847849847965790234818789710199165162055647227477294674778065919811026396634477723789730317212117959594029817771280268571426176241003571928251663099951032457417167152381816386013044790659947826668912284919825405222481943932373168296707892452840410476634346920356133022204633201582297429431199123230839195336304346597575801510682985329958641007149534393735149018838775803857825032792369433751435046328092003496433754773995585131867541477238479218015820446320111153887646508129507650930344369937245440368061730743772205398318735408507637498915417719539253256781075053134233846725285361707854572960188182411698683169730404552632784260229622968635237319428457337106477427343051734385222302670154986464230879002896830268888968504823654466188258370534264944390425213035126984980480310824777928360235418477438408260134080874997677298994446872458309598452593481219267016311444143151317327571917802372151995522457287804405406366419903274205492213544305093653376633286029484825610856881283887591648937685284790654912517308401443414391126142840167374952863249069627552932842956587052690434369533283252783821872903581087924584042673096538202168587700091442643511788276969133568027741918746238362280514921151701280294501532806406445515899683275161287979637242319862866178358561553881792748852067080397339740213990248405437323816347554372204964083288730298824442110933571808939393828826699700876099614716141339695257559994436332493280406422836796942657588781173079938865483890410495617555006288380941467155201159582708310277907011653247719726427484398672049370220940390689255418892718218711883051387691900102695002458417561558310785959439530942783365331911001420180595382270432222055348617131490780456556780335793166936886041739562008365472537869708057795133535116099687639714884184318181277196780306355036096800854689021394839677188190090812925353234677562694389177980005730587313055594119790839579129619492833005612159858338184704021722698223633909994464660352676681150985067139056810257714620990463955182290012361560148025558765241320882322185657208143830618557356323847033063386625159268650914869700825352210855246789193082696879671676444394721489973944932076885654046593066883911441437697074169881544850900360013086537330383204774908743173679908644249424862176374796946704067734805230964719241186724030412620113047834944204889669204065625978641452171766110742641868707221939119039700642854359644323027306291795739144580025743560628178212488039421093891381471683985027261274037483354357981405290485062509368961674853544982809601479921120782415939732883274828897353792564586044485511281930533872960998868794820173110700991790782398801761943099089162462615912674547684108539543867475594350195922058490565425922748740482290497088095445792981184766448430470415644535375398091926680773471542481307116493728872438171493703985090260701765720835243524017675195786756839216432031394868146910352676345975362477163995956509230439037372491277604727213696589616621167234774492023458231314653276269325471868585471106356677327065579104710535754134148009438517321459393573523807332772177141501012001393645118261866905732935507370093778856381442589265026318659570899658899325870832702059860080294111011424348332543546891710822893645520266341796660559420882946944422819713344729949768314092386615079917183663718599035735953980331022800471872223900909397151120862717938652154762881503058103653971155245130784021063718818172735536916600099333839760377889798959767152299291391565804888367312756572661572600498494501126497200875320458388850283771557740879524530721850749552903696468496085353236180596848760641604039557662777149412423226239028603265472018037492200987994965029291963672009987202860791897349515323898761068284454432893099894088169930869515907238132928234347452617958232923500687020345522076200645545460775039726770647910123600240707348487879669075394737015133905893480586177403590740138871561985977431649409439401588679303354965207942130120206655710023074829989506360049557385657590109582717291160274590922849079489753570022792580926500280319444576158117567063771120177652781669812453332703277079333301769481691822259991559402588990871768218225636929597212102825642665107653566504594378958121820411088301016964974643440412285076976193130150479343731380867894267378346534089321737981530355138183710226321182193699466833067451027967452409524474877253806203528268460533313440110038330208984870000819025497190283389678299226206203531216651607022281612152588638417996448076706915168550003021857817480760007262888824365400655049934351277304419981483810532398145080853000014802649249925061080507626465637703372985414054791189773613734341246218594255427146261403253830218011097567982653946761622318396760342405167575266960334562543006920652302590706987867836609727178793255218000818652005851683538635826824137531569000029750174122338348655968886833824319609242185701231456383936297151719585955970419317545461666319786395498691833578516392395456193838481654944965267543090165036893830872762430503977167945478369630379643339691149368720289357565780376696416613314874113357809118610048811960187328319220226462882375427206386053455491599850193021048963936838323115413015697271563667192943521250537145193300566214186064405260044161555493360549506740554107820940908735079223810772772775823420776130003949845033588606394635715960448404473340280857571108842219599596274559534116329929806450416691321196330121870197330767646523637719901463628477868162477281430172052919974613022466522508186011103353216266841565523081534826436892829869051730981083400464308940375186290193894756050247971982884481484093152943436880629704544671896812471887955667376240378362837955960404621901602790899626691034415026241931480164314836325947511577516594980720075510889174814897920041274774277490055297312378515125381482884726389809702519345898444653489212487686081158181839782537401558881816129371666007276332587276498810082068081327543701474461017933221263048356597250292429528032252732480079334502789827830630898393991644487474312175200884695832670542901277195071768641425128427485629848794882669611745001246769778163725106799875528006916811954842640044957909406053815854778007578790220579922358187822855541726571139673234086810646660744464589094951400882604415279735040678203050929724690469562458544454013872165063746071134208525302052486612229360191002707937197627457325774307860264806658158917461132036865359683293561448280058479427295115714140312253787505033168726907514140045724941021905837780632414501021208848093353041510880433347726451946790734978489569572430784467345782264573239989445090154649621064291032266062171699515525853046062339871221270944796668412248191359066375760939449674023253684925294449892887817464879735528609265044134996687752425675044463823930039974589511330342324549120700577438008419875914053311973470898167661302734393676401482243098313465556935200777791272306961634667192262909315937562905190050235879392092832885876786383649472985563160223761560769199353168280240085605554167103470271985386390772625610001201287706951979524325358909849644670631097420943152447285247775134504251137319128787981676823827446524650831505735088452550099328865495049880770344078578463262323799561957035846777173135020245690205189589201576086733980030124371087753441689602825803044471720938591443032461355820105467576401358357302963026511204913742868451480423288124824633828145448827967313362653199224342305735496762829406995012288682929957811486260143836673648309638272705320806158765670925213435341296989922289896287770214560606069695831819216422393797309533800724817062730396213655381754302931678720343572007304953507476476657670093538982923554812440081894865857686111130143784306705522073470828110530176747645459524234165282082315871041164430986330186761365201742345445080176068808786995817220101994146760280851475061712794651040177876249885614608233343740608605469157933746892125298744368217075175282644063178670975038184224134851808063112905777292292345782959256348705173350207437671223577142656806414768619349602308076611527779191546543475959170296090401263331945604633955835428669937521417293563296630955573266921355921344199004533220780747908252127063347602952955154136327652434546425702195376186013803325257992899712270353775831823572733749723366116573298221347196980148211334639582560245012825215431243763469965812378485734399897992609122506938287369586148031321782275460651040377145243835869470193109366509770807775730879195216753040965361855446807753962935471994550887756149093141147659604994524880108499271215924061442861659845325950841804204292123416112817865757190286579676329282686448986863468294808144639180618418325490135248504321093824401894417943309591164813636453775019007639571716543242119811278123102520339389490324698721855939420028257542381515605345052774541748657137482283725117078882805629451903889609130642538194080519224239220241498276087071913556792853845602205166633119209919716076226396290514892523942461738178301045464084253579426145591429095115462043651348807361740019714607765380246133636918381760837078903802492371270842938240436758911014981822431677746966145767434672047872163096292645517427527725919424424362114968077786856645125514093890955748524636632952160728369428203202668351559325314774001905845306126672059844648083901928499914073842555294427423816739239722861489125235569927694856010287004384237208906978415278028533940337655767705945739785784110824896775243189910773611832736280062520313638418245673786480470617636222560930334114090852658809374139443245886965179401028453744639232314923036694789369869039926388013311921817049149218439799538017698903354876679088165484601946544246247993756193505890356995692872178402153314736823795125171022220110933266045562583542395224647446581104888469093663756475768947350679580804509926329870900215174839608507187333865063577490816016178877451622633947426742711787305574992983842144580423475804739601199671513520754942328562012986676887319866077803570225033639783567599938340430618056535363806087573389311324466563274575000458255468408846001799034823975021727608315115748163272870895625800518856460226026412306294522976601458833395581901107126825295814531868517048210633368003012193635904021794914760660349924958840326904035640082921880453398536973036773327779755580312262536777091480435840091682738868897243897225862709673520130539096470683331068969110254510348299291679437952203005162857896421971328690150350122048809969505228344051857442086223771165353654015795510268211942428623340267358729066155542458516604180197089433354603327893792702206230710237203910322897693429919695976910564767196997965051469682661738112394756607262956346208070811664772398452318145998006078973279540274333111880114819194902535506143703643388969781233625359553086410453039276052988282628314667294756698450454498156674588523196650435992029233493556623245288536869686839076225499716797302504958887261819007504488870740500733908849074385971383397410959201384241737784964138781781751503247542660020037199788332419632368273464286891636258868560338585253494265861391829227561106619807822590691164269122629433608335313463812784344948599150729079172067906256453752515083313968074414847692936672490007535339867285805474890997310741980348536523257254530536448269008415265794653777571526240469945102259963658370526183122943620986112878271767598745495780566048142198566280134109920482778214580134802413659464713840315634765452887490067015319479680388526416207236599273860707588474572137978427450164578113864524301749926101489803731305979002756086266585173856396146308870599538253467557086064806385301471939662993201003787513454701793412422335873796620863423804635687417065408972233189834706217560995881587401010954666072037174654383196058268291737971180760736973317988641085303948955639630357077675086861483045551334164332368003355057544106548493906839935160260229730015639289806468643519535093734127528883664649380091224477211489526612028816602238605779986627860219550170209999064290619303904547165880128326639990396769991061809437802008116719913262822464317439301662949398955209670966691142207906729618310931948922616563683253672174916738461910440992452514125316528729670221962181084366664627564553737787221360878416767520187786045152404696023620214158545253269507631600266697229743717839276458083178439090077315167948012370606333573899538846319135296195079149744118537725973980911596855970120944144991092438908004091510144215840566169781446141041840021077101230420785561632069017236001342774208857300134673597999186360351282555243945981385349077137744981606729563133349489450444112059059284581173050856571519729067193668423614937738299314985376828451371953969941379746545475032193958368723591439629458966264102634121425389937625011061578511567902592565853670882581622334358573884318584637487004573949522739244755856440258807952810712684844552292927291943701648100147422853541193349484020815847327699717408208721318588285065331431327343459355893251341014056174029767843911290732356927121273335157627113503034028314661775139313023315590273819135346356812670580842413917272343968607972374757983701688646789584162751397323420704109866374060610915963746136979504286503975494288229945692179190890963251713446971100066291411077322989090478324216969238012762721132239043103013652684831632994511978356532297183666378973805409748412339607124387076803551238459117613674177338635465108432575414582994801788167231606384860816936966550035570503397235116425155568576135008942544321109367004019647991874152376760320944598802596018198931890679111625011041738506158547480977430925518054271721557696191844148279768145453850463568010684014694533606560713859473017151386729084011235446946303488053161442411215021506263447165941097406116469601016861200239452835971919876315392980483316473348329927342911204001846028445702825995102169350966596786360228659512163722241401588839936187828185832353306763553825019884113772305010694480192752748994241401317921330488475049053644942964565676638567727051766991129069623999924353465593434304592249184312931979925620444431886740181758606925159636646458660422154326954193244636922969711745803095355314437374612972860396577190159346045177085487363335429769408910949653379114395944444633061566202400170597259380423124926512881795794498882505147803771056632359473381236426553622906843558149480479726254695492729598565591739058377261965950070575542466683813131391660618159252957581483901502889305877698219705925352123285117131252781559004911237084521085201988205184030755700494521491458229634150606894933504877483189351852144516491566734025449993014960564916653234359438655776858951027012710668703490103222218988838758798659066020932753004794315762444383472525988984616531168163909284698699058350985730011599442665020240199769716543190637173816312804637936338847003251685785838469577219885314333348293997542314543921738493684763212751253414530212670705808658263100587392637752076658888370028278936737802688297487932250856545329802970580514260219895865960745932688011635741994261411777909514208333570939138587183416037819500145871178445562843910994205655175773173678377934374077897673745783592081961458051151086902041097439033212532844331900553581223355362620049266747419420488080478871253502831222451513041341860144728088548528248545075144932747769272987642046408602795676079259558781743386249402452254328688214873231554340117386528477637545719707050853016985619168418909633204081087963793103441231747784526254931178579631042191510181952636376883020462061557260481549196294184017768182196708418329129987924985015439701356313409768431329164845574577660557266892153328770217119152102250232455868227011671031403793847721332856937296149082867530685573122887382453316906435327210142922520627523001995363586505659104867348253174771220722469957313113290773867703029956930532790353603728262657326660391408544280004116033448029288123445341703221058633656483774106380964467672527870882527745369435423410730751876797672268829736066332959537490955338643400661216869716882394649248703293112926195876362605784561321909399897547367174931286954941667249950382596365905378291130096469993153666392520695450493734521658239167719421721053600773096515820930116340070863858401535485342463716911874275069983361215358868108105928056742298464640991526234385278870506415357763569876964918620463758315986159058583837411201141132066566724801166214440885972016620970598920761790729041536048926315388813126011002264969676167195808355707772409092534779563463734241617256326212890770367750526394657088268056871949807622881445858481022632809983048933918386523126099264949250169663305546510019924206578181561436560388950987094566296656561648821066596407617005488564276585922897784764210853017497101384760928208801832037499312159503211094851722861445469505670233408309572314038494492508742228386343353774422960196943591664591817722161854997733020869123251840365036461510183451529325531111838826792040376245248777282840877888563886986555909212922586450209867519343478017757444657442511177476784315509100348175542417209369227139876914442983945881724502062433695551276738239494665580359247001727492304013047730050486139240562708976209899791152113913482639922899715288755756250552574854869943859167270740755084584833373703459949135054465447039645741762736115488751451053454268822809702650030985669433317251140453920312681514136640335165100266445270085029118144548460217416329259282636860560972701892441979391283075742390516476075551997451773341668479302092167673074799677642905025336454718172746096117110713026488923625959838452359655643367237640143341914056903675526231307497132276046639381759014329209689894845284929704009167569851389847627190573443149834080328890674604656358810159401773803317699801230624919926286639656249911231625336066782743041329107521145316873169021563906164143029138626242226115078536288650339091128097560147277727676569336823290414630652092874211243215170962677977912598048227613557855177408011855572811927354803746767382891643887626981676549502509135175199772093535174252722770377381737010658655118786015320542890814842030070883807516878767201395653964056756724660741863256336879679635827115635130123127674236644486471948377627670443900993910126787217220601782355048321990863504805141719746181657435883195789738904511258585518998610335869356737541651302520652081341494263185415148652310746156861529537142966109070000561184995585208649802293474794856775124841442902572195797431579907750530458532158729055354348203421769959820221504523849867277914672017703103415680982495376418376744236786392520517169924462179938653779538562130823269381055207349185515960447904768035354158003118578466094290066477852123466891695715197258635878783936498588033716523977331740844057272343282295252604351053137087595179140835638682642261048510004228294674167524239623300195577357773270032714812319101540176113940656472593943482376936149002544671138261294588092751602993089527432488703226194681437681741568884901872669627857087683285412614468990291952719139917526998660712256927670572044728373300016364350825153873749628162792349747814847356610109109946408192911615284009384394840662949560727596854883422665992530978867591961237383139256481358699915937843502551362867800377742560316237034387127404806612049376013215456153929251506367337654862986152304056995436368805009333640576325539049469003063601623604450227578789503316250646811317080473751703968360604173564505351487321357812080659287300255594291882528983418700225803763174620379678295007936558574434999389074635848848702461024011094549989441940372239949199196528755339725207001383985413998183030335761875132359758056420572376697573708795521090771073744690578101851812189853061205647450786472339004686498665858692713233624076971145361830454265299690011645717126755466142220682548792169498805887121687847366254943099242778781036980970159929906807502433979801371262344217354998251929327915928702956224205728596785860983006096658830947641731918050415490032241452399368926968739920401221379499852927600733239121515043988845369401781018457070424634369600359438190088533803838850810900705953444754678818695768404234051141638653102598887183277628596536095774163067618762189801428203157376368235463950534121656716528883287883788474355365034116828646733076249120063084006021513759618785499900836729644508899277999281325654405352609080647288033413989212117338142412132698703705503587647471281741720973292761717268740917217610200068086835423676142688562073613494686055434706631602245114925198088158706077958840835216372428107043951487306837895358351288407817335970323909215431939065447617196822750588820299559897320344079255831878327926136846731713608836998411683552889691504145294388028329419315825474728478798300563725710212912681578194955376137104770107779251172836797276841038585173172381848640447396292577113821799471192727804880414884492983219618695308380234685129648671953708989416996882663494182809082447134671867995343083658489889653116940067631550105422098719622258185838097269107912323944379732093289483158640832345475999136150378879306598785558364383665970251652790773309137087645834511575093516832197257581367701583612524801649104378886105457419823679210722784715859253211061083749705230893191256807278018071655276728508076237483330708049623065067341283026946478027081191358606592868015624651308863462900727807855791318198613464536352865384558298434229148434596400155249489144047881503955119969693135387034164215741726735525146596764492655137050273648231879996489433023565435993409861837523087384298281621930994617827451148675848436316585473114600387514361393451244077322099382170019001312867677375195604355086195577247246344164675954927018774834143679712035608984187650961219015943192919042953006937541601579883316905103295698846523339110621746636288213569730514694152426017124431086664090114005361915359536336357371479248346963977053190206671174918111816294180560802927949200363820479465168217788323000060374856796598729227599650055726234805324293313998164940394290591280907192359111786787927947093807775682359613694707655057274371540830828026287699378699511292084454985776602459469595265492433094782133727374843554346498492439308199373612046475863596629285271466185891410586293154267187720167520942534841688246120145935784884338978782024819282917707113412770016444088363374547005423409245072541942868950644070218994064851152156784308609021339402642337506606915218544733093694765091979723462542074340442320819045365901666786788275652642759610922444830361106568017897772895583498941927762852849766790818440656751686596420771756620688775574615267031516581928989917440386605517958712524672451986253525923317597368068956100230307044582799651858576940461490819767661934266394413314056101646972910742451253818947152692000103231156785637125502876733647674147135434440879306392539256755681279981893483059945134412949207307141217258599422199423703055182652763595723266509844993762377956540992670405928024323755953338712169010591447075044649595972485896323444612426940345870335143987591942114222674727504928433621468584533821101076956105168387942348800742109516929588598480766716310090840918340651291554445648399712787656971713330648099391283752202062089972776528361747287671726079418071390191001066804262433028182856628371797139578218332370338396592342685482863449658504640351767057194829765911712769329664270627261851367315175383366495000226667903346551580228411472609487933348426117140553800425646251922220216882852117435594142392416525046310616133543494907609815914389226158515690738910533425266511891105173966834887482682889476481210688002619844387021184224748606211019874870483724115028562019854945124307271218207332383975520911857024715047270374627918351288672209742049019858982901444713941980124625942127318422084881789705718651001872375498871042975363543192500440937310838027102229985275668034291569459778884263239368917799602294254889511994700900203979256656273834701500362428458485716606436102215675817676791816686743555807746621272046779859778552891541836423108145607095395888089120303906649552789669086447907052270227770922387094698982135891826584942851921985042120506880287155335590057080477524527738220763532243681946977652333086484653645004601229018759876013333342370107279827091239705409309632937829948234445921886283187843444404485507352697825412435512679739650184787529467334664539199293556037721427847741882597195813078213352360809722569657464698263883388574065129190587646821637657413517464460205801482304451498183437906408598195986162779933319768789932766423922700503580639298459550499610982534592802210992528817646928132191494701554333965594278806463959258541949998646244176147121213976698754240988264951209759418726936817599969084600764135278869930333782238643092801899714200670333407717894531372014477372619872562374854720249297658761682837331430390865053006528840199468951425952016049215391960352683463709170411430458715259671719082172352276747861439038478713712958082276212267018468425124860452791908697340084740287351764808280036243299365121754153785605207706313463911694412323834182375340534700951609027520309867046850547663849940372517101912890791273060213362212517656948823699850703500904001352021910706458592014375659567033892865747611761930168332919343527534153455789914267947052325758122234212427271415978906838789197564013447673365829562861719106781570764545874985634168928366933276170329434152886512508678386881708071530330348841027142585019435399703752286086242347667033122273498875801986672170676903328573817800805968689827977512822568332158487887338544403111255454780825427357465827640617277468991900712957185055542474629675865579629749034322069559840963624927385847249085263558131339804532125320073275133922296278083456114402665901475962070177571490533931517046150132169507011055081294736297854518371911947418687363384747201113955999420429870946244979025563543130322831263312604278374720298289594692066067279191247926485599363574664978758021202613831284861952770682038186683985564830098857891285643891681935006526601868912533599498613783515993738542621263116243786072299337638060512536748443571833414355275168516189574899110052318416339750688361907002532554665026087312865383239229467256868678435668422250913641183661900596640120535716985798774053768771540072939189935779295474379145281389321167070480516638895770791945623000161247509738041324825484590059310740088437343380833325339029960741514177567809867910644984598681059010962726499184282102029897011946505806757422269345256401219356828292796610182942813470626397628881007187422555609818373106112193418454994084020922183843494855034785316495000860734728280707699489227726503958475036962995699437850064727430892730654143840175686042618590686703565463080548362972226457611498151570970562289379362219924587815712843939832211665589664582751746349852354626876100939696668195581213959347011151579820771000958448263164794532259505743646604969776530302674583480683286368647479850109769732000253367047229639524844276809200201109753177596979950070030550476022409304397183596327701700252948771473074343819676162554444333491735416550474127872536265885648411445356788238587218030944559037759870265478763178282995848892601903927001577042345820030896396821027017613309313314798483034431556409601103686523288111092651278420787381424461968774209511526148824256370660296137867280705436420047727652938498130604577681642509603608313375003637496180917363224589797999938449944734711965568880397050052612687574080899464057700047249642181524630944420350658584329040834083468822184046238662184204295384325323965634058500548145140291341022545055556963299860466392274524523379405953236010590405197633250419014000257745405353374839860058585806165107674488377890530969005218784849213112956733784231091050196556880357085957235573536372009590389063214268595261898572547991658162386534036168755983537827092065928830685447080136139192997275088375687361330437191714263436770637778279077316630880907150064752342936592577939046465763082749390247018550857269750779462674764276872990155300530622698845275207715483200060249082682202602087485147716977734711146798768567213476236940824167086127047724590007859513187792131623205586746626517080521541142343286652790813042830155461519471259431806742279463614928344059576808996775679317804815807540501848403287204427551737999514473506670830341904141114037263340788639952840816439001525885757199482065350697214255630516956107976830200090310884038530651126258211808108906206278020314273991459715378654935636461741752125316918023732490235794086272117356235753104381063438888663235766218609102500321741776340162024666401674779808991148740840290301685799630647212880114958963180086747393562026695038143110363156115408443118037687590671159227596008783994789873110143771199276837837462095448126075203872880607980160307162071535841092435492179218062178473130134552751966216050827269445643886365199037826764436428027017927912189791739466393924819460058720050818564798427232959745313286730330514314617248632522118110420310518315255952405464776613180947143323981980981638936581869973898724205607028694517202500122877124436196624235852189569100762697477954459128852871876597654528788974584143842090498674645383081460567055090272502148947981093597709659414182728506845201935145171643383059721698189865807780353890818687615474229179346172084477744339347673197333153287598593982556639991514911530478658125221948304222960133174051713821439198312212959709140096950108158459147002563595578421122081794830544744659239518443119456824160392398260626471566750625489578781351162375681246830020042382935279810607377552819337949609532564759303646360313667440331550040099826116467964918108622586019464862874253685544199377811463711288441170128660822131600048419453659700180620988061546640310833111839290266284012053410672440250590617087580392187069994004600025874016228979163454341504683651726253668620886210123019716227297077276658843536192836277730703846332989335931856237541011682283071046584873803838587929308646261019752330416155065503389125749287306867341962434968374079069184267274201627931460231287043041969443702748986382348975319543091798584274522960167787087874503680322839907899650868215964824866077409750053161209320657668597518469310116029780596698469909529159735990671026792389576599036702875602689295872662351261969140786349783447799934089249045407298685607510509889111755618868505332767833798559785776880220832502859129334736090074960391067164362840339229098609620918853049674819157928989478750702025545420818393394573638812934652839485055974007276051214707975178939681656960524035155831410330240418210699571307432906566835292202051288982167379684474416890038723087407481433994963200410542141012880548172075127030754064286476141099800100767282147430303412412238814171474668340694636849370451072801476170209343324299456628301029467934082128191875119770181630982755732377869462042444352374616400731718952398767420352483937142550796760517458805201234417380739811350956716222372786260296493214620080505924232500630333380716533965573985128267860734599818021785542607422465660245740880344562702369394502544072411944570227743331095958812739843039405185857519038074894467264805563279384738341271963541872410499123577984734878846955574665986106977527181030388797495511992227502032209437422494560449823520380767342594506597399259087778884357495563525101309836904760937286099765774827626766969707278902742802691047450575264251649251458324386264875748381250718923006510625612766085720769567103010166472400629521833438860627384780270571182134871845788278161905592995692604580935478725645144049174017344267345968026482569361974247921867571031311755070573161409110069533085315262866012114358448968915460248408058100342901991662322229706226929906355026523151926853488554590451408195691078100601137364667098396429819603685855214979279472758811997088004091195443998015663149092834553095785032147344036611208117430174398827422347668512184278727297541384194043067732148343464254671119055778450973702091306266105218908338192719519784966650801906364135205592006641105340298742093351316838571917230607055881980112687495081557716646689677982720310493094267902263302242320653349451029513358620708858704583703235581938179834598037822307332288667198252969915175633591121801068671246668987292705784614754177707292366838635009319787555095385359539544337444855800726820008972616096612420510200012022291803011177332706927799631223701689085350507225137150487237557625546717634825738485720847426507875686835435838910870575750077785286979763699711487039122340492873375166179472778745718658971045729251970515550433191631902108243192836182228109516694780433162964761576651990910852682891190864936529942815856444396959551174959185681543413240221338198682196361272680716174734139574624810223163105788506924679205787887987403311510528474861039393679998616135727470781568985377547422571161699130654358387316760225434123783337879932808731703062076456486709513411264990411705963191339159483248194380379599909924281189548170472798342740795941445010792054416268766597189600532817991714580800458955950554137175257605969469168597575838857840878218266632469617981756663724586965614777330391906523178220835177750493647102349608837821366168154815457806753755846922513450192712737310419809009881085015183000327363490009503314197724815495482667577708659934008472397767126208989389823910291282183809383280859150054634444959254833598847791794020911088492531501839384138862697540494798751016180312147209613916569091734489541983486357957821065940172518968226407314992577315586939657400901984649281091002602674817982478585323102066191916332076432163127937780869760164163414901819333458987595243696707964816301433600818900887144255424112538320267769244112669454802828051125858507407317555998784435598875681019099563095649969211114306991369252483725309578974578536486887097020308389015769331893772172156225132585191250231937020501946050016604202744894793080566679709259683483668959389534647486887958814759265432549429562336831615160552123666906459533691261516728423806361971269272134043617722935156057486590823146391926215177090730601413832604110650088483052895636888563789230071341242750901202038909458369819761350408617930239355105867214205284795252971686859605117178873244014299833994806488921435102512248168135273678126795703983711091903184500874206327379761720001692104602761606092331094913361185645508387043857656086702017972181483489083658817142294991539673267156581817775030590411813676247064462909482698977863217196772679086244726158095502855423620318666867040207027603652536765317053502570975418423837279275512752135471449959242287530187036671812939841794319014953032107752031141227941473724871938187343503142777672582312937701974146678514166988559401945347119908576588628730185706268608814810155146512481394339161261197573140080946415186698181393617181277842990861728107636746513737696823915921850656543009917294966766388017552065674668170187655754664091388584159263673969001926127249436423797348840168257892525921196305354369379238875433502192194684965393167822864104377586039506689082462630976880820184675777792228063790992817425163756863756811802112927694097644396690704163781022674597100820703485133409568878897451906688659133763605872316562809519414960905525071216218746263508656889391971011905934035823975369857773033307120421837696662705149910892276185143460861798162561495187513274143408070713594752570316727732745084360199033652331315026137170452029428356543412362797247378584258215685560040350694134036612643811706892883953460235501536210934180268892250665700726257770062144330718659755568056638237179791791620695697182764965586123214321291784921429280140954957824150844022083804744886630536476811784588195271022532443811700165663018838778599847980636489748484950205727900317786613757909214738523251288686799727729692224662240892690925155681680456350649261334707872965149747963620743212986721521159732935166512208411255685449769008677349357743616482681368177236660206939234628151954203707629468987405990554477726797964028735790207627705415770576239432013647416247395684189080125346657286433773615379685437635106848704505961117750120601497055610065896702934684494568217354381524125573147638564469251716948660803415088557236890005690798394834971596873297436685476211085420800472543206191417452254636691267123483021294788921581743423557980182563591704577904125766486713608648106798143837571987018930115839414648338645712063024638694248609712777838152555456565285076454666585919472570284250437106826780013795128503687045250101864203090153915844586410297181098991906809275159876686527281485667202969164350835779243516766281763923855957536613306421548348677848156665006393350248711412060797495111972680746502106167998356705997555540887814089134280463175377037522832400670695492832479466723352433606209611700095872989463469102313163738677154915772725435533683982304349876377954960200579102739209697315235980941338728154269014181147875227252379645475991485680843756807117153144059357162256829214126554347474495476981279062684765841912505598917709883853761412712346059248617819102096099175443911158215868466841061096699061695828909828015499640900090108660358724733734455470346353488601118108633505312431010604893103397815276391761304712868551672202015541359391941469960802831178633168100502189791803031448853877013970716192895534372327553134806403945000028665529516011613088470946430505251873468665772969395054640078655740721712104445249601035586155623610956483645374138344971998400286262211076863480115142150474185980026048514524585483394928716013433938515719065814604149814365631369933136532500264300449449800405254217295500440877268717561863665168654281168556521166532023086446914745742325651904873917584942695857398782391008922929943468559007170782680427752309268791839524145860784164371101856389209232053692787390935553985761159490927292334191874463312987535848253292299636021732357037345787904269824679668411149201064647320511659160055471925144743436140343847233365887706367535535353895871486337890385234892379637634812479105597160333221023607098682904913623581294460202401631676882906628070067419347422896562068018917192575372934753092428810016254829290035915169109668971046703925085044827889513760240425402850870357262660488148713317028075282695797500982261189014805891909891406559107494282947623712419822629302476970297907188001116437047938331221019883099243442304164788823707078815121046388897193521168933788263796281384335186948441580753331047139656766000998973912304109930370946037169379805131718528563272549229709532355215267082969026312997038914370439915526152975055668983887973494592477672555418775975885343998408499599140661098805805909838055283741079685484112576548345510034180524594364722161178773087431636627485981541894209969460841794015186274943677574727638200561820496254988781227727880870514689207841544117645429500522348977131398973677649971466396657736244674382418147666063420681827807803212944200577823822961255708324195111938934623778324078265955945519934838117541579500435835218558042346487696501832012375433041305722620332860364135403104508168812156336483545078198873787372390355168562023877919245453363372738185800063587764293048627717020302942520858404126910428681643198177456755943741220554177668744431077018292900353957679242854427889487697608123136798448940063859680919472707525375443969242235760050786115005112171129280852266733184485507352172812563702901536700912722209525862342559057003985436886766010755400296549796366605690140792474346797890977188360093680272953607215783624040548074011085349434574504135414718197890552039151777975700453987588762175347409620814280974417997373220875651865216896988185215111547579499825851142392961708774592322690648471721600850710323842629508961313156327892522422385421082325227624270442233995777830162633016963161823703079999474505327176884483238971679140163184197460975210331017743569436350079378823958926548782047894696278582420203223840361147302833968746057432814434540026600741338859927332272598457289669645489406870136857339777818085369247053091617958120269427949061655269268610240601054722946130695953318776250605591196901758935869977539412570965974709458576787531499782777561510298542426643873137585872732125557331751766192286565815569716986516488902443765788888700685478054665502995920862452571128534008553704342339643185077855811936218651719586635996206169179901194058877300240661249566093485617337091117733400826620848903020043229830571976974626292437947200509725917344324099958265891145235168303080202112091266065786466520097867310860815927197997591197204432528540921773567848729065752340099803938251131833784319517799935516966575904878002499899716603087359886105070049376480562373094549487689292290426570286947512221739429513510605403219332786720332871752712907582791503506966948997399268502452004823619544348444194256940782703847954251233979982419720917148546370057651566230950336555617208475378223322843241005792479938904749147627858538501166225290738707645581073932457103864962863623700238470566266259408437849781076968173795555357150775680382318724291328020664352632176293318681188847211151185096676424275668775117277871391796683339094272708822456325560335898348740040482068489660277325417854370359042755152467037625717471002158390173887433672529949717928018911298641360385975068534459389030408225842929170187996737024109307577202479943423673972002967095135744975097498053410423809898785344649787307839476676378460361234238605604670653134586224236211761028897931418199807332903162905221513814968136085368039315580755933095998988603243745852998292097335043486572966424025255541293301702949454567538388948932012305694479409832008213271403125291971205354088252467060306715429077153564872787432273622364641334805149854090488363518047991646163246706855136207319399655072252780925609556717628455199298863280254587873273190715343596166941056435378873965965333921151005932991585537102212430136611565731716511861360621428506715092348275966539191115126500694252176607253733583154230490337485302676828097965043113510254683853326564547005012569823637622129962635876016343949784955763098129308320730846027691777775849906724270423760297539908540415649161656246645024390262369244598681057066305658702814052505810082154739020123836580420827459466516335985436605205081028019571795371513358904588062802434915208480895387824086815872401180510150950316403079939012492747014468427894349848111324809974810636114926585073313744337861046293614850820427344461744086501732725706345259624887218597157334992686360672175831565988465283999347469630433697082174697097683955943558103970610614232697795472688387937508758548937067929285083283502554345668898811137376649213257154734380851714553034163745046164257639885331632620018451606287470576690309511287547923934614644012677586623171084337558712732534768659473530726706587907678289963210401552462764208745992162614667381552019272356617703043194297122624375904781717008863740465656766451735742226645506921474372586024624167770360938111844756519343147301145340840898647468746170931035731107386409679640868079664817444180757431911753071659033428725042421573386020409843352884669680863981245108403907667681137373330066360884522701750713401489368930716123059052102659555939184727163573717668487570619943016197593081118731939266123159135651352024515355711109359747650699241755081919238494029119261970595049904829655357562053915250488508498398080362364330861127802150809952600601425671099552295363615003072546302294620515495599444232190020737702010584530211338125650990694594744951864948846343527120328574835345002772474325755318578957443447912715567271806072606270553922370433600001839929457310263819310160712566507178001593610608133931272426787846239993941484622809337149738201276126982230196964079892018270579396244304195994235158839194215165567779797578624500396578449501864246718986038403200244037365273171839756105729570051662525295370544000158793611493866808311911387875084448511881518710444969906163504696704758467663270121145128302927530502402910861866190516761857236853951625323063475615725115206036610736890649865788944750302255281926438362617562645814888308657725480560366857271585664034526868119137782605686621619551735437988652214670409686017916694473728165637931858448601042323428126385352246576909979044516298702795977954684402737262198705353526479060433453234188450020803123351713959777053170455989814766538843540335301946444147311321603303804507327182714312924892319093304830460384473846322783300443025636315876684154678088168708141966726845047149341919841480043611337467570205646699573659415773834405457805510096481096143047475992515590997449790378825759045562704378787175770159208458372166962217674493717208915570526381006816886965791107913411532677055117075585942453219542077981881927025134856767858036488643915957603737879984649277891008013969167618530644493303722986357980744227781835775427337186382570937318753752053955929434008811868859327290186435447288686471433621556058635258084094570283442232859206928728531413675958631188945915388690563263210448550369638199619070293165782896937534239640053518143330774472341374567004062086071268820949424526857246052366117376794569097348676101128177623064167265948228601430688171774414130935594544193664635351166321863631137952703508635054883746965818117748930080234804796104429163588668583852605073050687565490432617024881590089434642094465385903249297517739273587851852572540388373809624366075397793796933463273084020391601938467568504962608374658829563331236542000339127358579444730905368230852092742814659088425127347029856075201789875074882227548908195282164693590604735433858973770730679690527787708382179311272193671612243822955273504629523795150359939715471329828470859586467062896898948257500671121257470641590882664681608210383189242451008630568517223450537846979380108291377857415084397684164523099678032617528075988041818769740834777803419126420612028294727490945997457201872804064517070085228366182097781176672193336401860514626145624560854993196441654220931863984045276504580428434807097807784479697479793188256426068229518671643617643407079465614781761904207556130295179347282788299854610477538859500581924316768405199380368045552380022497316535746641406548141629255895181881545887523841987925769251606105432771301277931357295971831543652522084638988297672026760765604252305045015483272404400433583656582057371114946773917134314356844980929272652381043441307383791152567048426091829165868491769258450308660736284939753627770159694939118011060305862843727640183287568927695473883253750609347503221071208630601524707931492491331578342665858988351313570758777174128365541503094108946497475786493592204198853373785635111013415700789764067649072559838430823255823146113680953017354143525817668845833320765707605342561517842293033224392002741730883910401042311401617485503707959502917245552895836904334598059083542490931879258211074666301048306989369855892707571460081788445004711006404208155881151779024110769931863682744334153355807686145405998122127934682480883082650781629481395761978678110985735347092958498499104156491501581815229812804721674120412673663006264534504182897131671057735842964119690028570779804852463587181435770084551453392927147627964431292660891113838982205595912862519744136081888935238975211524579984424565694610937041277353377282439597307128160966351351164009328877193664032450826942058009309498788394743887103876778447617615894761603419808592812934219055803445343062612248526106510020811015049946261396154971825603981607813041982158592276209490636183284994642595421848336780810523586933596815808252620304384362618047715347954838156167885093186796687262487200984616812538790003950682153500680481133056087151538375586482479383694690330066262233140166881870366225039733307778912074477092253082659917635209704577770229487097014408348588720638821143240929406092160923647707498629345541277158921194338685776152241361690112070729454991188245217672481574078441611691466040887510747851019210781482403834294237218090013459335775127114462061666785184633868444443637812199170832025404435938607133923571101744404578623489967043337570694450222972982964625830803685584140183120548456019551749919651108953336666842644244464298754480934028375501898911708710602435268260143419942556954728092862938312013037989899922380780321951088155596654757986184187308326363966607694313629842259442969883551132630195110877779067410326888754650457476434545774433934542026069712850036740750643646851756910752216804412177491067468107801097390915408204081491624857464901806625347057871177208108032902894856730696230170543270750964682719824944974114114081487053482028876226604199010990857948921783748770924570831349249977467095789316159089763801049599907797799053434820856387984451144964700658870173063427313240951774999657512709728920444559785857316984631425059397592979452112196373848552463675618401626576596953034243124827093035482307618907513182960083879591124000827531229930320029619047219212721198774878195601560466738271471179563981753377938838568020268082845774772107134044180382420273407983355449703444307183980808691432015096889559771990896448576950113032063276663185857548109483054503361458694910505546385782462915706750944536381007318137733991136042480055705828476253645186146829144004679317316071130575374329428061466336974517830513191508980684204032930585540827035727122100659804957767076559305249665969645479907116946635161966318625315992033474626527058353953205513036155526225881422260741338413410824717372234423817398810657278656315892995306082217594613068009146149159685650409104317772093722530780970262263356178349381054587373156004220939425768483589755538059099593679796036229646300925334771346071869942232142043089219410678539057330177576883772755689931634163393858026113967149550239499789382140085094481604490213846012166524202937701981905931924110279391246921016251685949534794782781423742100736062983576598667558406362483465973719713394198621239444897377032498166427141560490626217012176605324082197527543864520568592461352794879754774422179100467112201362546531186722724744499879347263940284673597244453038187437166077872103435023092448098759486263684457346354359334100665434652902525208446802910485465526670453207518774945788087501176872805237354185339512870245649062015066207312474550211069759320744405280616028465086398736361331577365170077509760432134936869341172577518189758410427262019868839479807853086565065856325397804564853334026208196836173220367308860291273191390602335946424844303489818678750850680477451611852880904041243398224666968164919402378659298100008773944344949349334369239891830683712187410955779808651863751220308139795103424819195832459809355120487003195553264082096881515857146038147395214535820071910353669315390493574440759784551708438330428932318770081861957719993760383733857525886500704719637233934633410569992005160352043948944626173789648199835442264289374791307020254918113456116823734518827506642653540553107922114029704171890488445892961134107292606472173950590899353977010855609533865312464301520778555340186836923233443049837997856817778973929967996626416089507679849371819232868620874488376259900995749713320308771573970964773006207211119586741882125394628030660192443396046906023597139280189805509982829861903178855688011521618327339435734828956688033350917911680192288524294425049026148851105496915150285718755852512348100919973185015932012284285560856271230501835783401875428509803675631092076824958035823562328425523281045258837724683508258499609622812676048856968529799822115398645489285883143672703591847830164684597109309022924485011480985701650607492402249290856013467578822454684266206040772440107337449668039807244864596921625368670470944976861254108344006727199528159658652602085845124504600768483412395866661874731232758778847119098574644426002785854962252531950502075217766302058394049141384386870529175241659905151552830381793517186413448023382722823036664419996963965614545930449585205311711296283336536746388386638094435076829937702993361669940176185143838022879661542984660474176862863705749647207090256938234348614461701738335128469459178432309604953447533705663481794564516762881529259110462978142254248254028477872661766612421021763462693584605791932006585788261386017174473895153853019149791855641650514831463107533777863799986249968062576473527481474512516733367080227813338475583489366089423621507182953397964723502490688431312058991237344828928764239790673688067582837049161900458046452092496859382076744028506568082676580788114484434684237485864785415072245877933270679235084335112302946077576686073671483822379159434201084213126107489136347532727524184665385935490065554853731681940262818713241049788879339057909392949663904657731655673852769471767869989431380062182731350408252529862621391319295718954427069285062713473069407766523740659098347642193936677218494200327766805186078821059415360963841241726715416482976969174118541256005139684488411115165142260346284173123691383981004382906741911773215300057635745082359820670478446569230367635883649561584570926365526779482856967756675722301429459317382270898372737985880795187374422595119566190424957550737902274250072790943391311096724607579899467815775029452407125472555586174112317360603017449242165339299495425403630829801910466446618646206409000234795747570119540278429794833746589037476204482031283971320146887740353014108103331877273575088041599424713890727912269190294772886550893071340058766517620614081265107504006972020251188162325829684840501220833332048754903352516864901820153439323505517271190131097213367171580555075523817769137681497687062417111069017299907142367367452665987179060901340305436385803542123916568618284214443569982866379337408951373672754295718985025395330506917125655505873187304206702898615042404080068551355368932543347233542510558577611673998740873120286502029809689923775354492328847929137739644298300488608020019756418321622486733771609945980121897111493152289272218283605558692534594594087109461634366858602373336818237228434871275759380802310533806701913154396702291125140230187287009239542894143183400999355429802838311720795328233859115974239931568865758334411579784728569694707689964072493088162999761251889970551994251329271833996652010686923513666406372896700873254964323088049462635364938392197707578185089949987950247881730781508380779699490364126988224124640026757488020501420372572426817154644860434908181122481699929051991428771016757815199077163025015507984198446215336421295165167052215468839075549782290845888353761129983706556355873294978587126523262309656351768837311187096194531424757545442584630268120965791788786040819261627523714375994772589593263127059847959106189064808810093700021589238504574089880420017303840338899372775978101559236024668915880604073048675899803996644712721477496739209451392119627809956212910958332765311915618617408774763335255392311179615338345274675171305312350758742930975849180690881504694569196751888180580824305127944475199333851688538940926343676287686413923098133474703971336445254368520338613665000376368815689004058642067662173588968714405562437681917938937596811182825280987332900450787146582844019455463999367465353198524455126145989606726638779803685540600509243018636440396026264855486555590661173377390219194463302027149411360271099761550693773228540806312467227418507604440797276431052085967413829921518544539888974187152753626480083761172956348587954965420123447117103552595812896114015914794759871992688987552628358786300246390054924752636047325224216639090178137616739940580780435316459353945339901728277262283752913375297079941322510982207975391386680818554149448810953720831391397822436712871056194171049789131978764752148748596678116611143804422346307087951966298522674609798020801037416007121207499571301232757472522849305858777892208860040416512396069616027581199743919025442311038244932674198516542027401686672363139512368995413284144410152213258516962429784583303103476630574617616876312408525467583839866725643168263802824949937030545461271517181977339368635570664865384445441150868999245999005969491646104223962947559138739772026560406333158810883078478505675321377270241514280848534183727268667279830149543035650957627400259846054082614054846671940585039189955375754752619832403364457085354136565841692448381658430553372261806280210965215994987243848567340132713428539289561904474955241790777410557345670303631917564750336081806442502508993672132681293903488188220780558064930686409782283093288795242143725532982655709676919349720748877512993172925657794626693395116145212673646163442408303403380867642971843532441345945604887473369946193158441166478063908026857267083217886427516969528599424719233327936848312688220291949215805892618998534999267242939728169174074102429305082769588937481973782064111545019383604982480342969407620765057297628845973195499869795375004585213845697613504207586293517587096010061959650649890848635932927275856028615330139121124137644273386744609844304567679777710578977474054845790735397024567781305054561604112950013044346231858607214151549345486533267428038211090801680221760926863857807313092632396216036733733933517282314788706395738535690388412793988359976622261799202080383564844671666473333491321234279653384126960750433863631594489437362521065126740960254808458057890923891883100849920740361007081159030803386643749815029219561049256711461161831095238444628842414846123617827281588358180409219099867624829452772391925511576332319680710661416598129911483961452757620059617801871570792911821291899577013938634300833761343728825529804818493320031611516173533734082575846475948105561788772433683992632993825914746154065314188943317822113448207299086095223445286596276701347205862178256916553706187679905791516071309871217080431275088704193571196178296773524625770694479405145520727248482537696039816605280856081068709948294489049274406840440788008199583386130346899035937878159560640015750731274184084409822444234384647014468352903560650577357388496799634143256784844925737616438717360515926035530512173026678571741573700893921466158748095420575196728583736295446164308152606550843443602634123319811162310730583551357410281631454467586157357172002911800737098447440874548988224985407770487742578792095059643401214621801908802819000450344471352217529758290263128844507606088698441131569322927512808990602227008151535272939121805313288677277387205554689069420130682994864573939672289934549830281676014923228255027017668549551791767056868642615809478870752822799551643878997507849015534989422659277664575669040078756066454933161856378929057258442596947706356516008758808690787235713403226020597179415929165363887628568397197563702759499665146811218511785697263403723106332411725715251850423956324200884646615871390632096906863143599134221092288157158378966421759712919296987531288399173040606122722333764001503278846932216810877273163344589073519641025577265663102608639813842661254856678312832975720870714096215514839979066068343040967068057563695132061546786890345966295531163887708191571715632990288935808565724400066869220133432704130393849402731925431505747340493660052924359027300464462107737763419607123589904618884940269371954571819290368454966263526223344608960983328173798890749115582743933568411388059157768559400807952412483976632431277804420550556982638339357521036047567736991901095669280192554374419002734963597067886294553282345081711264502607085588646678421077948859947533550814830923941338548748365532536766945782260450234740656546295908674786007173995905775638278551204334546953581949668131325286513466132817203017059015895120509292878186023695809793303214413321783432169711665628570195916292891686048625997774239941721828623448510309547033176324422667331569606770757693839242419850022409272951820066878769017524402231447126722888218241361018742783814037841400732464544733164587655646293698480533700324686498957224969726422413962381165160321320034001555403629133203914403671482616435101880922268554863812837727608592546886600259673278883586248800945607536132554770751220822011298724288247254770586374662862947213150269005529593518698437466871573599556339706141186550922404345399383728119864494841404154017301077510318744658250956410564699851984494851106355828137937969470527220755737365782059555653285473780339009521168946147202311638879730517554773125322995453808471516711660027098265784726047678426462712333900696907874447876521203304806418855041046037290980198429689969625679463195849424880935700856533127219521833134453546510379430178410999667265753359571432836796133252164812584573921551833023299158911851286403539946292987742559030535144761189642855730215393162984074140147742878109280565548281345147012963333526288522019442164429433296226385082387829060060790372023886324445069747646973354087136904400854439106047115322583875395279187002670493513611677335912586780307841200002257477003882662729545760668672601876662068383418505251313951254068993024629878380903060366645297216073065564440116031208844734606070353968359124285668975001700048585699485326271335808357564875130411572654004710777141267850230428358873688569302442957581333875024022417077534825677873507134528709216124491544837417225841173663157354433569509004994756258764273654431398909507030609881830305097825094144304720905414416479752079619308720343269417563423645905875103674363994688160426651712709819236675849148723909595977645533371342059055858117544277863854648543853716600892382907956239268459039339303163775400351156844953311188868033882505782993089715355320669375309807921568502352322403278640681231645544187008792663052018522900545220920921994549191147880482934155323043060948855597438990640169089479016197640157081399584556155210700093228772401774814418326240229222337226041301899186619109184137497395724036723193212219858853544909814887131572457772370562646524356896257841549146643428091909933925041655091447772289430721242270769993639527192659269501430244044322985069334235333244814787867953019227202203631681103862363169141266497895579280457149150672249354296140738485841418689943941461831122418757247466849094399717511545544152810931503457471518738221334819604528268543145735096074759596694865863608279690419753555321052183247787709753365334675986616244790844265734564644145360886844745716153726960991390082474032249151253444058112746470227823550294066068349147143126201447067104661052382255656827584181387458227102089067468632380642695885307606924343069782155916786113576561561881039717141843340790411381438466494056606214565252779683803270905951447583313428210483945810441551866096065987402851619547881574104389246797851283438794228864265306152683232995912543317193060709797517547720623831372926288547472503038607470434169615064464756544265108310041386750044362779656145801329560843004370142042979745345888664270391888042944798241763382805204504688494361627683700142309604526797609763874301560271635933158991108321603065689767908084539953500361514070346452034442836502871806234186512534062082492585546493079659436782608452510106115603209617433582496025102994512916958807772084340137843253873820759422969424238469065135252312075888337155138936774376369952571375124434231330176864693355487226876879350507741331769763838699485362562347436837799359529114234066046748433104493254697348789335112382037910494519053343340233109686726622518635347016006416551571658752658827600476574305754256765761978056836664278679640687927884517172701742854590870555591615782808116662944588015231275047490205928168663316153903984427636955893617764101641126548303602033909180213759861455248295693661831664223312433186479802739511715157577802975297112480462942617856944984781746820043810296247674849980419752094409942611585112132669826616300639181165394660529468384166886381905126087319363304348345014573217146590819295509673748056365051467567597684876805643565236970228025420555716353445008221792068930139800484652597312006601451097674056193011911701007486027152272398937366765444843362983759945120776955559055134099232707866453234930443783864965046358077933484779297330282442702389198336009432140082342960218550378267549721469049440610587103758544178019601011399539372297587744056399732096975136493822934019865439031633600023507350703757212495188855282569920282870290122135923213677830626078507250204543546690080973009753972637837636421972579216928272533967088771901296847976275931162621508042425064547299698747652051255291810674502003264904800503063648572859080971328519258009357433227540432482192394680840638369962137899560068444799623277697853781202191276031909071618899472189380731693018445211250445845277784882459580031369544316333304635497348371693035023813668893000693506723788772385132320583127253687375537401864705355304830762570232812882046399420072333451837973034567128964127044526203316345892969375905726014652956990928477878575050472939718518469180519863733602084765233257746605852998711552706748476940242022123429114199085556472009749333999120990740230173619986458320400221412827449332681243000941215021366556201856636553514957880862789314188538988492899620970545867477980308340807264175314149040987713103072051791269585398234739022782829714196461804893560462263921346187457372434431570158755387545947589147924582644588354592767369505733804736688627875728093620264597060234241101580584093931629072015345138020423707588389667769970236016068236484075748741839317443246836547610308457093845196119479770700062754246132135495345542247795503410496472442870990328925155802663783519602899096864609895712637854920573609615192046351983307881849299303662004850982443394574623783674608018459738630486385815981144501922852930476383203868112384123148423062006484203162571920983242792385433731790724971415273983900207919612493277872283136252439835742324208988602584077893661624537160846069540219531931634613535395820608426014112622832115372265054901549672703346423833884672211043823102696175898717402066501453285187287466228345900556487976017084914817168615894158723060607110628541384512916016444191232299900894102550309433060166744490233996139432807152542826265665230035142440972829445038421576948958046604507142535676018047006994526836983129609593418817788297196460466974858677023337494009314861983694443565407877795980904931548294686695605521095058860264273146546679792064216221264633162060172050413350451440282639430921593991779081688892699159244155470252715465788366554319918853522325322796658168043288407862600809635168417051572279616625362575176872604956956811798914399681477182069743582644426483299569085561050443708009823522806476351800438614183974663842692809315816227994438838683141876625281860096496594380587176991949043757334306186309296092495033476507804482967056576003579940999425890760033991883171220149917119334390775838398506650400507106060085010385329367165744096060428362614783846043610799665658203925045308489476157761258816691295457667303049731946310112901435957612055800906031351585370927373324889815503129805799399597630418849979154231486337208945172628469341999262751158058244647446500122615473689517448077732652989055746514015178073191568321639040220700663577772222674694134608912240688370704080351108827687271623206264995491195095129140848913175692305095758674179034657108939008321695172969330417859181281486328706635988391919799922350010959966924349503346511360609495656730662916068640790300355799056301587618106766069016964571529894615055725229846636721852490429886095346454810244328811138955961137763358252672646537228441676825689793990384938019559607577103110966552821773287045758709222910354679794773929329609699586370132471318727418385703938627074358572894139317317813051490324162652565576518244617584409966770715802317440852278943809770787525515406675576639741342561805310169785975364337583289100297377546775551889359526340552702814860845027435189005579396960550616671811425491591929513665210010743039940911078827198123159027342385567032181267747305667307833500040359306528673035697926439762512604694687042307294447029799964639706527113688481149030271498119889675867075638045029871219002215431636695282246636255436857424864463570548930124536636731909318020642253900169069616764936086221359933848381575462842986571208308721485070216315693639199819029895844522653878143388291686230356735178911468025315008553751888234147179591895301400618958894831679037017313280201490021438470203645671493152929560080729427159089069669155258574691252721993649232620856165369878838974540745912959304227036142346675255749672455136892103856414529280264427099168598129120034593381913176886861038669507585582016685348492411511280362134296819626332187034217233591047976141721033860945786998309291286952404904371612984744440636393873486069537916543664645284159893217660887295585395443811215196009822283509115835089732411023488057595151584917008310554768898990218867704242995222899808624716897287561985767725807653264794611856962233918571914317297138062594712374297655278376586497080578001704661182804575240775940040955307923562078211155312305139202390099838526701290622774840081937364746946221908819399841331328440579520906277495803483885290335480316453194356644125548909103077487210741560116422656418263848503077988195599453481031457508655315613184226349918510201238764818612486132340073238925362305417942579801002718111879745046204468479310082235347030200363281621851037374400508292279916064148987112706683564164922254795558258862090790372998955488210558305769724500140369906324115347218632702015843904669961882963444842609064560916411778561478206042887285377667332300237711894582424891778517652356947648807301521076927141242008142224600549480255769033821212844328640705022878307702133508670119138764337087817475031996060545840171005262604906752294601441008471502625572573285425576923577630898071676172835699080654815256485982814510755246768344223188681490098835720331409988585698420922455629371837556533114034557412763980534401709584232109717692136429731070403655395464218918217750494426000256820180080603378236449860503639346654597658940191705022538897114089925829990175707204270537771047814988285832922540814279555002702363209555635649427133718348483623866816515647887173414518639817267434388454942958297054108164377527936378900029118073996738374250132101024696651349456794119605003770858816423203579316919708590806207407374312977120898167153354152534763267158173746151703676331686536643815745791322077379744661217918477859268374418186807631125655786952096451106558696764123035566411986638747985364401692953826412538822275430559293094170412109631688794035012287990997708072408126464843959744591772398117674440178623119732098467395654702015209290669792211467948277550008071553580823074382387116593184066978900881141289936436938708960200161051332470345331000756288137079520758181083286689265482043155844703342971859656346248104750620624724492933865928764129089052528998817604540632132944928445734005261208609643226124037213821242223364166876356148690913294444457813626705059307105791470325017475002038498019988782930348057504663027269449802569522316859632497424095126001895468193017471589146800559823353529555519967541621099809080795449243205047451111336863189084254862211543455755330283129771552850182403124680870575845128238315904298227303921665609419353474241004212881992948762560355477594013589579415141345374568046230862946184081183006682123624973973843665185434797347824397480339342197599862348513054486370794344144165171923248384198288068164009368964002431369044885288643182218109247747740585524059159068659177280294794644597109925886146664858444143212932849059618789102408714929224764477016772190583997865389174519749773092371059119530914845667764712886968298472582326079371413952260231689807916699094725110279782231905695423417485234162987139257502355715219145091205509532117713678212898486619489916057175738872194175012068717789759812992991889141368310114449657621563247713480333505656324607213904831057934470803540432686913595889813388533800771793395017932560995513033820959566920095518051923882027425241085581559989130066216960607076496291389230121244596735070354303814425253401809869977008840697128690679286135626427588143655120604190078824574553227733427248704121959497013242155202286865795359669449226084523643183166925944180318666236688455401575468661901430296675784204662729561986069782074373400309613771615932577248201390736539713901705998893591981817247729826845103641365714663379664457039203658959371688793190967979386241748534216841070672855572804406058214402481523065515700247003225936684999109380738039933685215783873101830539374769912090806200667005396371646298898109071224445240984623412099388931482091379412146575004276637010785998366833800076033348583468346935972360934804916196365394735108060892043036200270326128454295275531665604063288224972137422668778758194131258489266248652306770617149104751859384250226374627060326399858993184754413835345495552808145773131740085132438536815543911330290937669506285156980667118462239012867562959894863433566753974772874139418789125969979273457932050844293542800978560298459018657049821422751115830809400711844814071512248604315885508742839741589892775003566135804139948850780774057345555068772225447585233369602056511860024271729608778915939281936887134177783187899975079693601587939437058724624066963962323086890551956080502999645163662367655870239827762998531337045360566152266551711241967267185467530464220061851280709346510785816519278030901916563576437596949888469123877008702367159855815708403370727379094348875934781890334308107837263108125590500719542499318246298580063258732232886550847255931195419184505075722436139304476652633406314870789789317958522430828483971035593741941634055523870119492124492657228951041301077298733092170786319680125138073050136343074037420249037208327427508277696548543801771125485772719691919118826752215338720813350006170209059983865662960296986167954699845605711777006561541901935622870837247822964013950319182259626149334620982096141446222844697937069098214968272944336703926973838857001855042568608805316428246763221860609653355397652313603198005807362582719008077095157901773580024758727711293906543909205176583595753797557310822209196461018961285227456320815624026492148969005597931700112305395451705600457061732021957579815844496662773265899542837490418556495135482499381875221789836951259417412010843058231912987777503897396229360393806115944628968412571186465410705275443568777413486928277267943873483043569162827056520017561841414054147676709016108991601613362541307857036905293867250305937359679347609924791127976218954526564385046581239334911041709814961734205328343106611979028627499400005317588158214485119683624570207964912256161489281793895400682133117265846052388256526494697487508764525542674079135498731258408375863479539650451168114812736788654132762711272623948135126484408786543738651260194500336793738925254441193722392480452960044999505165262476364942186659150170392208440160872534069920474119528920805432856899105894235756921450304499018306748912330740764803977366003800638547339077636822807206696725621154502468212717369206238221588765050512978772263417827195303637370239578760804572024439434126251790548349918401472237814438736684722755285739819072668711858074284623362632600372035425610844859759351605988609264432676361878817535465191455606458317230274759462388369338370516338572009830691903890297867148636293223635147055465677590306703257799719138722444635729933396103307992769601261904362818958281471314524548806120305433897220642610098717531311914837597724957869785601031751051777545936056148542199014823108924810189159692603736432488006464194017025268074312221152953811152519076751180801674431555858107967687450177860463118334861138658700540402923292422123804568318288422551449992574481393935582766591141039779971846107836606066375875259666822828133988269066218519255771248980931203738319226742348221841555005608895525572373236361704446386908719066260943130816281296000404469210813404860502242006784847384328098671056268015344417400976336781521862248626411864310211149894797831070770939131896488149050438784061304878429831530647754903166852049766191453969928554074930626929142631006744881366174111154847689195866742993600990177674317185457917044353238689318257001153634558340206600261072111044165959739159490752947637809218541042642932904136047370429612684184288078471447566839014050225243854676823756317173876693764082497213097367128897731133241897644489280475670158212127330445357452015403464498688186477286504343845016924767039464987146052326835635988748271734153262103735923962570335017168284746003250267968692002608682976932832727006052804678167421215031010109352763854038677324543753936595788636671700887517447312714526641106969707011304394095499908547166130869927712050273937010789267612999554376007736110423330728514278032812586509394826797673482108319234129206373726383896782047644700259823573530685102934893961261030216583181723872096100306861995031838786713517956023016494487145348627132914808595454375265325420959203186557576784942595628023888032903772729865780359902499260602411364947352469281318451281595808661190313222692722042767184000397065989494977793912212982899274483817367415670226622766551197341789670044085598752618138619365010504291592317689828495289131990319899698230490364327377669691623711834700555997986496782547341267787011020556807410213258000593821912810573745127188633945766112652346283563069914244106814455436334353959145125057471661266569857581471884054783608804866259553628994540705177074822106767621505423726737327422819868600036460757693864938429468136951183222357786493702661785009659786131856418081569387850803595184868544986157079878962506105805155133597585337881752621123492234005484030868620881357702685473147679687089809421482968454660345146543371671744802054635617637250767657637902273555258502143054389793186011518978304895730836918824665185825716627641738263433635617367000231923358025954847793196920184192988257764564585529046586564621057147278834042623592398611841358168308828632563319965218840552401590734891017159197808847592770985709790083622726048741957497880453652751804508136808188720367381216695131080068355473780336910182902560997868359226390886396312722822540668606313409182414985361778025864502600819755737396928510729116783730172529212379325514694330069644809339075160404500646675579779862066040436095054560717112413479443716198399957814929152946888834372227174111282891369526549391842165301683370338374648367293904363631289765479658606184866595224253980393544754850004113240941843224209690031175810857499781027131603837124294285087986749360393477084262439437533751605632163005387063724773384141035560343962198799617673764417409877236156301347882188055366752938084663848168166462881514782403880883430966402710137881249146883746869649796652219145297640867775917926116612558021646704851150908994599506500996851635537351363908227218692477080126482482350981022532144738418887824629137190081529530402347625204218368620879103608922141291489959440998346870139531152567550276974404791799835871563778000046720587745095513374629559083426241440484277909921386561301783070108506696456085694916508473911652303743795094303239750154386746159618034649136600445392479611419696935852741049718016891006858908036941585114889803361835017646901269340532500223300602548533560347314655214656324680749960635548114657104531101324005933261695189207523980178673827062111421962503938678678081820266486453770044342086637069352061689443967155150255368943936138040553035454731767722293761971461046432594080097413287244667772939644353003066176795686376288604432558825195648818269144077547746202381457505686698137662529379144643208091950604144990992561753527671657018236961705708387936897090567341719019071551648343097939381792671311517009208093027750274394018896553467894434975133746223435272078059317422111945402515043290069962159386947609352766378032010380469639462299139675362512930716970152239907287666770154601112660848054564972191067233003401187202421100240005230388546006080854590675875917144216812502701887928444566021390801296988119674896161811601187070657217082252081618942024443591795018801254641143722753787293855852539941072997335599547753890517272751472024975066523704350713266680088438230018204425141472693314846246219989030455019555872827444046220149732997019596714188470710906658559395843229324338442222648524296033805666935673676099178021876977785392452423780875081473721618680379605696469773828401073772045513291599386223973472066320710647852319366459639435638930431467830261058195445270149366557669735413350235300955679492545089717796948643285253575352510913565958571230591354292973519473395969325517399654987274294190388633264235845597240228089698074022874665790863891496846501851402612316288597006251415053714237939877884084898514687229153768387522528895853353364290364697214440290259063326346741484702880562013406421764833072056017890155387440771241107283808172645072465154382654894916757489146330562150548197408117642365390328546237358248205589876831913900320701646901906773219076796641288247180999835347019847496701714407725407005020253121405261233631899931735257894014053627078063731853253350585170264867335951221760639700840151331741592669767272697158742292242447184485177843274979192606872955601952800012886996191768319351131023941703704379739235533912031615342090146486342322984276911530534759128325860948306185704307454703923229575258117590440575008357964837254862980433560638456569742340965760266931086567188058775091229465005500628827290623459855725679335920281104270485326533401709396295536010030572841080250506997890726226186962830180137025983895434833062669395322408557347734579843886869210718223441150158512073488350758302668399735563438572216838391309874550893718459459472495612338425767993763659886887160571012949352598050501563737688468200167360492441704004817703344297877010961684665354154761597508126128612249416338230060307661782695750830808474256761370952910176428661055081801688149020231627499475882172008186648823908667946374415250118954709652330399149621558233581732864588070312566284759769413996749054396780938501676914694460950794702816674672285279406508602498401155628382831514889300575621225887786233048478327028344106738003594479870684657594022814024261513180155225468972592113998270489483867065762873381334921323981310936284161373082965685290549746469012110974344376544915630775809224136133860668415497585964472174036998767482592121490432700091499722344889874283270594468442152591261700812512762629482403515258934926796459752433605838111135242832762818155017845775092437040156420502246331580752210536936340290302141190978529864515096043126924440365738931107969328097445088507777402259376886855224556364727124332813479378688322260731314450681668853266421286154340160804861599553542431572190659230829487288558355603525493056884117952065553040580154284424540057395723289909824398274055647525733245255927711129417184736581082759098458672448751586126401155081499840547735328056657308049917772966532061055689441806321363542324149059907089064296706878864417347089222155477668798187988946666245585746174798421836364791048022577367864086651144846604062607629801120523079870729361974155942516545041203340470653649923460624925226802476075694132165135446142250827797692906019176178729252884991243021791442767833733009554761827456012216254957657523805847054518423991883412962707048558106013237748505134680332523891657186549046230426929869683110622426806450524786509957122859972728136172065465494740482324925613254269668425277606790264600348734670710818227397552430517552023782609242231541400956722067698179179316498767233956547969028770008715594924583687471187015537337136580924866841694979939516179056406040330731171792240124456456243548696427036361732726511564522185242086195358214195356531487549540251598369981690529205217235399384618913893721389779371454403442701376906165643012628839700784587662579199915914899240985357909108893026489811725691348859434539995113009167984205221532954060622058701151677627588798028224094469766035502331757023845326233537678546558202606590160658514127300353591144350184309301623926958826945858902963563300394026131454574801613781878335992762903069736468523402293608251833592890515946825713493638149135836685567875089933761033127387006503064691064761627486918174205877092595750859776276380271588282406410046984832184409431107481091792911127258412074423485143105509215612964422730299541109307865744887130268649117035277340440316332988024463928844041047167156153614207877562857002413011677593940651115927350967123111950586328265016857039497264819608302023753725841623517804248149084424242638039804539430769459587674779012624891915896670683142475512069571484716281364917711074274579812350938231796787711225179991186982962973687497021441787754321915130006971765398006647458243195040583979745714889015362940637042049565765759762483427069262915507092264257411771579118892496389027373046058869831470113133082863983850962599764649683716998910730407536396129965287506570431163860405140949778174616783722972968860490541199855550540572769125887173924063688571065761899466500526063174866418153165622770864837923262843761588352607114321723922288422968479573525693093114057623488220150880320257977755669366773109680664964622686154683600527124208783002539373124461509215469405506928570004950787747269372778401442325617796040049126550817401283096883862547136549297627010150313728392705656820998289769688241380668568084625204603688764042493837450710453547666932478122537638450984385310191356205246258031365174483543643358516991155212228029634167425647734226957346397337935838876940043178449131555149401554586584272063473548846633051099627673977410935735136396117313356706430998159031948611943952947696410496815514326496468163998732114529125203901903617522601931390526184199067281486440722824520777084127362682570633586690875795117427263898791306107066487563477545529347119575527464057355836470582354335919803893349977502257470558569517805130737973579946810905651298399878095187146097651991610117340581284144196127574348064300319624078199770461525382106907526334141424203040419249333938964774607631854881157235667549898447880318427803942851539843533942874269802735133140124151748777455643218004757744555218638242444369597388956883301616342741570668171929902918596767017408232238596014938637373147137307159033322747991147071760349560967916709709682638548164020663536314659767297305303109850658090360553378017088195149292776329818175109756698127791789121401305231000624680336308775793812027668489716734781097515442483079137249919798573767744280148477847224332113484530353511942568116109985169992822989682775347512965441496278149466771382630440269013373653563455508454609345621588046332430638951919523062669405678986965197606206203926066086897734903524291805765372003475837778335596815095350630392638230730917664630019231456365870658158108459937223658032034705232611916051331423909094302368302011435021531483109911515063862379470110756730575615013856195521120331812388069094653277270736879437785831617996939150450004235221505998111589851871030420787118934003519165983428409472475698382240504842022719965533255672011520541073551679277793733576543680196292221867289161856356960618781057428207536148823155921948255012784502111118114382103753116844896434600392869550897394106567113808389429106164965599641119707417053529428161392884923250337074650471959241523489794870022774894033092370612168163155370466787593726975637482335863302733100444479799402008456411365023917527168944467817361537149133920715608507052718300494270586409325508467732679006250634316869671667655997693134169812502282312186879583790124857265434697123163608507461805762211889519225380464265907138771689753222476223827813775385008016698653118919009528534948301862664356441107287728530688108294030877847799381228161182566791838552829168187161486804454806566013464032730743673894009550287827183874995337319411868485310735012346993528698090667788606815738872747566477502343249267425059930176189292291662904738353125133825811293248044430912700623421095101416844077759248231134785470858349069714447705768004219896795697315428933392029876038442193502132188833927619274384436589718966769422789869452361995827850061100411149066140836237849391161638181596297658663899782219872187563790834906672024540449314243637722003565766668144910602673221385424739402159211068053175166676984806253698776986863745741482422390570126857496751113647152019475649738497222109620351439048964665819791951846234236143591084176485357946832977540946800112196927377688344888534202888800987180429982248458592385733325161609422847684366541024162365472382760371728023482365566573092611671558507152885372524172651548229542631033598887103884063225694891516822676839313805163714955683004299125343270599542530224271930862046214233578148942675231576166784045370815752363623708693782115519906420169922778346543090253319656703077644975321479197829712193627244428522745440208318615602601819229131410254107953193754561627130229310167488737501790417489027042304263837347062589687847537816535806661549344333292472443976581770202432848012573836016240014998826474860476575026253720528002567293391843914090611049195760094213488167863786829099539823359045005628466091211832421983210844537203015288055956712113600498018314514435029358818804439867832851574068454895139219663206182646581668238842478099707641774515755540461798514273959553100181844114212454960650859641756463062221973730234568337782354063177388385317898113150538153961288130709451137094465047413697565521263481922330171408315352827934472903969876555583337828958531595508851509439777233681313112028424319043861618025670461627838329904801889032009884714400589718522367465146026711128895952089590654025076454510249477909034404183280203546765169839108869404709172196507183721360689804841039458754938850088196281229520823739805797500615136184080661918193122571508978528495812714777138936175291152829153965803293915339258322345479355874083160821522754588239994081095691143236614270178103918088218094388690679839394115783091889931016876667896651590555766326451972344523445603070079394072797864798097246968091983664774568495434903571525061868804494954912474391321555520360262841184892203174952622795553166259180575710526083947283837132403509809257513216616510882695424808296049905255336722324777344201314494558884620803954007653478950391932300748656531019483099113816439838717288873050981757793182834487357548012380208538302986539400945118473325304009816722609794893260692950006985072007004753406690410258512326995035811802248444738377343191585372891175268869636131147401905514460245972207941369177109963302141145141834213237204805184774753728402608500129911008106981405167146182884990036719778872417879540385279804497691331067972951036719770632857527669914573012637668629427826169442470841241607378678407668968467808888877988850611971153823915065144286866906142385385388654208666250042491891924772127978790716328669652833458897217186279822327457160527961737598007001968960672364063782740943752627003821563850858138995719715873015644398003042841052629869590111412862315270778548245412360872061515802496059716852126350479690379909390255817407508343158683099483136563018767066599261254095058693569353606077186917638350079412204027048969424124001903719436735946705173625146158514788067248923661048970135662504077405648214917966090146036801568567977834207938724267987998923441589004153277597486952397907152120448009696528854283431262243257573428529228025201076817951298741069053566938173512802156848432674439667646106518368950018028116625677620890262718528933557542272872330055199681450443708241294428767622999027979282629930579243862863440410602467821696723468580858768007132187326208870072909335155204064676696445004441515891567196546571732094160747222835264098697567207878792019988347450277294796848434797299232533741970030732467444527978966714231136103899497932711297585461580276462521208154665988104120708262937719781952402820381100481241555012347756148026079112050853652361589014086909723526451971779479528856310588484019487505234887045626304052867007807927012284910327532208467377697285620050421155024951086874548207264464205756232095598443445748082537710472304442999058744899042026331082614595393048903765219360054903291991229545497859120153406028784844954467998894106530742273836853140177219384122712048140926937901046041815868533682890703193701900354824199551088350177368655027199906782882583147621667816416645161471202915177314007641248409719593161317808612334597548419322585593169608155171530523345433507205582315376053480869688907901617103069572429972508452507569657644799089127530074684838324945587244048907083727902293947421112611425311694515499058765121348399551493716105678638810013296995125954010915169445873405351802343289755593256496985209538913117070963462334634668753863207306937173091126445804398483313192977996822727321355984709499007184078801863094142803966536285631308963546613240382639091896731923955122948033275067243007296181336953568933910171686134402570122054785697236194277155871420182109635772259297674596485104916608404954491604622765385807585386570290226999903553526510940002119316742816241860247956473344285045213177928491344856880611137942425754125130931638981528300398056261692442090147558939196671201514626718742552295358513062810956536175101995597245272623278338653135761340794567316084448507197931989552112065781073797491130958979236866446459795079281789803871976565832674872453915984759151074532752648531380551478900010304288913210766353810554296824458547619293990078506193114318649982791486343798580332884440528504641155086485564710313043298388222488762757551943393698690149365604042161271018691223777744988428856524078366747496666793342034547872620860489499141908217603839584920925970718967499131758509987010107835726891057556534344287220329346090460687337834135383451373816765099027370414631029091829252842246665087986493089646872557502276216021863180333538097656727032410530812673854199017940703022251361695408368829807934661188392440396945862223059983632448059741861199872528687560234910126327200845601972277128991366110746190343142031754617144753853355014305856384144732067071615520588206880043540351934183071161189702352082401643680408120411985587021447919559272792587076612943937475624952962699427752648226658148493567063608383266949776813483108333532381305802770967349309227321229376632626470282744337769653899290684080844499450840790880873741169883048929159836629336347227936187308067045725874592227646209941451782481978939157878144805046363306230245046275598348209776366765599168451301648805469068293562254471796426304726198631352200689844906165185682733631529787521113076369618130183409570358945805026041113295290047350064974281214412957315253138113568128661221365941508875508205444184479077742867358569026414445833129881488745464744166625420064126418156041459356592154641654879236914009229465335271702721705195234911490864955994478263052658197871101711520130993731440950838969106422624950454436548949153104770163450075528705458706615977135088683141424313403790472478218621184811926180366046368488069830418048629884537749684842864807676861013398658157965552798753604494689622997494349786738671938053699423333607392576953738094436763564505001206349728488680293446646290830064578932726638455217861795825344793511697038421134986327754144277476060418573032085544067601771036490291043687221089350824129207694054896203831300824949243104224715885248164162205546265624568011590639943060860515670306196394433088386044931229448935107064259458961126834476805120931901599972020297610319570242730774203844465506555420519535958610879821878880349749318938859044503705392723945923376835654456644158631087686636874996731308036134052977009210722180657376726086794268758901878790187629161998918996842792593411773959370141058552043786401295208294171902707241297388056919136190494200383270692516454174384595316845456792587915408139442863747908276232188001030900868126105423631538552768976116698495140024356786615119986638359388666859230313067112869161899373944606121571050993529589874063352005445683041651588624484172981195994408287908759309614654933783046283575626850941204680152075086674168687297169280948461378836118838819716194155443793309444326048080768797296623388347599949970044704185623034952859537537927073917733920276133509524186668329193326575772844821205100080514555017530745041626232372491159614368225962169107117512260592971215196047007209474036641655235148071905522783446077440601561986577462994384230097659709950055567682555014769951228098318009970304858632015465170109813819304465508140335481116374936112765280364202627371522084216276130138191432517777196244066773723853166793880570451939151570632122664576992681927803254209164352579252927652076696884555759754358861889906521407391824635860761279740684928531767757110522919145258095125361356512161254523802107485971784128877602160152080630523581047723659689457498736424793782299449963908308306668637837723965851572614111071737714430844076781043414247612419270878937031658776488756701231714431603950741529288069812085032488900726245737659993888063099987340291963396512004874766688134733278650203661019270433667929855196548647536776070845539276420197707814731345155535711855804401843483196519498781458626503236488476478798691380879777685757479494603085646075528993532714870690348893977478922021989622793112419431512573821489351121027693282446941058439666408902910109801916038839309867564544729170016848283901678767650008334388350355313629466154750835885410668863174761587598641535969560675564129676315292776869362475653794279919740953589204513332241821157983018362896744478202846467115663122287219581043739630976585354771241620821479649708975371004934187702425411532657047394812401588162280402569473295905306706260114548199918694489874568888669240463120497795948843833959852937501057975513969920494548958232616614035274042941218870450855623346877723570617609811054245258829089826285197121502021106119728552199533914866641028660486001597468299141079734978246647274493834531265091972610253949536225357994223794898611656670799314853391300998807634062752345438290825524028184209433309241725574209826529726816720472477699793724034290190968272042641357225445157851827399594369201795058157004964718528521873872745248710773357783422144717399931995081521659893149891223074014438822986929688261193329185595718810276405499737583332299432737910459161891858867462898632408829550596042309087881536044228961078762481280814995559458411557912175570802174851183354590869714951841228805400288292615605674871390926491419918449660348152966890307050714163478741124948549349928146035047873352868283498584647524599353362957976586746562589130012157908683056034917765936926461778136612242103202811646646621896206111350043461439503452415818534306956062617742536811666965701738529191778286420450380012663386250873450491907480407705694173798525667261985194987002690362212160916601927974872677286508563071164419648144004839164813975323023178472933792066000584572543061038998881285353534930157475836933715346636570837258971667634169581209404312262154196748516065232049563281114823533904899983259599368436351649566789375112550186922426118771989099406949713863725747063846710128554014394013492677965089413225964552185468337483895394587634987150618759237578020337081324374475298358739304591414981556374192422870313833614530631427994243565878862582445063425252099866492476128265560195476446299751098285008315823124018955684221923502799460674235764758977850709616256019068217987812071219900525224076436222227299838648406246604234732564886478372407543927843672574705754599258586046971083917383531615995224830316524036675607509947268271682537522247356401846842703537386011018726507954250342536311361012136036760832131872556365476552428850714460075369246949580269735148759808218579516914706704617419606822098657309447640786593515089210661050053313258190250652470511691502493159637740491641825368040277624440113477773253894615028629305411830949117784737611532309400130447373846245793692061559926508459548821210417389808512541527228409744437377921612414838304909295352843739077807403799605942490564289687843454909919538859442072824088288372124550836255123411420822139715547978980162447855016148829301439081163983069485500305180284749768620222817147111281395046766962997345597369604004551593743164830492340235732884377446814922309370823343760443140338268267463982072442000411464257559949179555421564105713942361023544940529949218179478728090140859987669250012098931237675853309173749389081807976984158096344219104161660075033220794387195435120906574183146850849909805471595899047931918423393687291610233665176562525916654911771358829911916113471476742876410485341834337106084013356975717967360270557582014200057314857857891069293400829886836155295854466395234770682986463877621872120656069569090811601516750328247674098166445760962300356884186675395982252191929285008496852473463558211110228388812376384552087530799581647511272279629761765985372522348682982249936206581883859918325164270661440162086768249654824842821475456448206058161207907430674251083518590976495754775713065897600374599849848927046342335759927594655318288906767819245865764034507009988362572834855124092693676461866883958797522548998117835865545330387444955017398183044848395833527092449436242795222735061926287498959259374836862453430474470647315394426482082670834241672884229562576603179657293875783092646125944452888721601023958681178012613959637884688807242304561608900755423545895996671651230650362064266175371450289994290325626946175659552348333088977232614216236650147063149751087978484497886866146441328869236322240335478341354789757857647907617645818528445061000483957113521454523817739608954928967599163369965963943402213358871580206621758564798239781161546829849020413696801109478012307280785330895937603622923086207969305405132430851905502873628900489467927765862802578446827080672302723703950720902172764701127404511323652842607629682938670321131705701645900986604878147279120408581478850567452974174246108764353832398093552743024531208200548363175337896455387338139422745533640167721128340823077063405185007270662616384141254254840676343182105565691613007018499795042300079829886717671482269950981261001356584049278860525734516654375511448954505449788103770162029057052717986438279195446367335792240433962133977375458951583868151327938906512378004404401349783928365924158074256090688331307280117248740520619727976795103493807698423914763215647978649277746158798106790668034886755460455452087934890574246305074907297202641686167467603308640831636015183404487240248068602859842397765582749816499969467369566014586135058971983354233986661037026737891459718563001002312858338811441401882904325351923446904046831071050822039089813958715738518553056217707009093269738302785703800933012399035103150393357976254735493939231738534555229335654149925950902889042394753329606891329150737881063187123796186144697010936791560455526539912472237769691780144486054292678574500515760901508509697311840777539023815443501959442457058297344703046319025328473788240011426329015287105395215903142202100525060717103392607494256787601133697447024729675222336191206775463902569993164668014833420522529905981294178428617585096981716779826990499086979660132877637001042206024802454207777383619152625814961650010895207372805649533738497052189636024925408000398862689857809320775154608679707812771656850911640946913163249042353029147155017195709872287698899290842153008521467603694470542501138409669986818923577603771735427610574296171865465794348182604867138124236006104537955752569515301947058792065455202569417251609995632011720408420100573588510926842005079693217553650766231159762963081782299518442658497890385122813885138071558053444198230502088445234700857801055730284588255405639853903568189389855662704160417653271191884111657974574841707346897287399276982732338081574396473582560178482623140949114122205559786139296911589109956170280260499968678740889706266808914329177786859915676562977074703848348991767462536873693970852661502294340961005838776529102211043374204391880834833620324271515414419180431851872014156397451425010012622854574637993742543110053422016993485721698287131953415674696377816850759707851335595990417293767098232213245887772529294869952853314792895109692770640352288637418068811845977075053358845079513459624340990563400392648890126480154636857513000148416986856194271610745122264363476350478416818483432900106281143994405384276083953075369769474704673362252174746010991988350497510437073321047412177702208357474185641481692758764086195601421775455334510670110108004947240814081731615506764178760439869517603246528013416043539127354716880861058932230194901298220033479610561151059318943335024081707787104370381682412932833038796165341096853986408087070706032457260573434818260196694257345574199787120404087917277167327471997047064319068702462333807541915828231562302457108929741315217899322004463302143013588381039343798260103498207443487664522984823136947051656149528246631536649516519692267698222275509056908643525523395048931869493646489086333984091246173343380184112027525568790767631338661352745595275405728805708803425315677121809779490524025399787815320479834281578235602042187195909903216382719761520439896914873256779894477107450614784571697472918131402657552734331768648256101409874539653300020072758250528538566605421060218648488901218884548817767560317713770376024277107084016415407982399378083929739802823892769293384317049341362490614390359946051359621118442588894255942941226967833331169261819321428206424194433664103402039956439692243032724201696929044477401186077978873903685623251368592334593437851748847217577436157126580647107947567772528493531285680258595553517129485551068789988299097098968962994314542620074989845953817932277025184491656279252387502987432669601735092146814645042194975110010348191393024533333921505316198719021963599991590985008210027512448193645483081174555632876135222853217383021164782675759591393654306286491145755933794517885349812171505746384584760471512124157543350076838622848174428851218084155998324766300824651027987744285990941956668935686905139356356793076838660903482160010467363193577758091956030641239139092261267104586444888130551886654909385254999882168115866513843537740537755030090268696766452475696219320786378797983595180980682327054204854299305891431006079943890831781653577546350382909277310956826280196547213232486205215120648941634854108274013554435880273630586956328956090689821730391551951786529095675338207636759280131308825976129691931232452085428774227282040267768930126246842058371358390582476126960111284015914127099024481859249690726682156307768634322196023082384644049287227394889712009455312953293637097353424775594382141435557196948788641736325837575126577053540329203114534578410229818907345073476472751868516177821118062138199504475758902621104754875677002759119545366039338209862725521190475648405197121209184234735764822306614658202839787622858196837797717793827210367691628542177974413453711297386672533220125707076760496088829897873537929811664884667646661212464020358362557379470992411927875821489144777365535050006598373685111852876557170399891046651972899068718761736985233593235519509935024540964601459420315769470122284812781767501355307149727558742957972809365157503819854189414952038459579976943514159553563727956262039021251755923750296905779949915569358457873811084637175324386681055997230446956619605346593791666723674367615729211208327627380938231989471706952622731584075313412668121074362720834200398527850312994975238974173270845804433624635697810459804122131766829686833756699826896384681836593099783103187890589237804311719720236113387851242626505171604065349088798036203825709148349613083551186856112280049481913813662516077391303857095065222553798661646674600938369916270812207933349166113050910159346988182114223255604476460058287794312113468122746190834546626735512629364813136433001854996436189968110861330872948520345162539447436368676354641164761515968102566661807860218291325753418352577289775438408764984311761126359035299460900500016176072292770320900344060204935595079683735703319404427659294156682154738120962015388752317235721156083060715020957516643924246145604064291138058875117463337830910486860952081780152329788162297805228839071106932839891385567186601915252751386918799452578899649298153800222691758947082580202170281733496840885952159838001691210958000329314541507902060423383518855659471298807885399324820865291917298651810060768476160693103053121771467910712848737983243813131931233670037953923165888208904257975402885400602210587562695009392610111529032166276366211019793783004200929158544401158513755259240802172805204394173397224106438222737472742859184884448855191792628214359409030355590915896030049589594971062237923664716870192390409428161951655681341090197081020836269901521325219308275642438855717386582948851593686113829370918605579787439200592514117989142581290444602498989860989958534487078970898712504286511961749887025121733533325966384340568202968494546947629531759539969435943086426336276190341781360075092297256484997191349861577961005431021579488237430494603356869445653079480087210156472630145531310408979335653540934606379309356051997332643362003677718266516720243157341993274061773299638417577444413141682372433821742820068364720788632405372507281747113618524074003447967592754083297947833448083038760069801278194423101866795236689079328187464416051230129690623182227631808493900587943288731614114023919079110633125007200350804921785629239347927658169063293670270085725051491076367705782281531277529987420881682059421109594509334164455802438641520505531992513359812378590267968472739260247622758472563324946528181394892153011076761096927292517995366820300473882323774929629090654713709219945492960766624899002911555941676059021469641546101331739873741911722280066990218171361500756888035386185126711571419847654136628741553082641281667093590625607719740813109214151577783042850522907259982481677215250195156585928542519505603344099348317239060873800963643518514028980647197313685865890471334019556250643695112796218044500935971826894510873782952897480623536088550233958735671061529567639721955600407977739719304599368565151496152851654210576493981178988930119085075950195414132611947805068226615866639406652114457684170175690245127243194802979407654893269732500568598637686478609285100702018249145241131355692081195980064029669324587580727901972077771975836513260184654066491403213481380548706866825872300917165495885796752462733512580237826319062536459310835227241728305759763810899815615225207072537796610914792507904265275258729669324276795293750336792922905185625925231770127967950243895621271025394249733232972898417102855665993806850864369947042406139519312861660019204630042662198604381272690089356192799445174348887851588405835338887338176322154496724142172349425755526799081807968688610325737202140946559771059076135318894056418060017766767439022942468731443382028878278731762331741958256301861812895222228711676959864624221977074058702906106202867170191385163158027222182368547802885143935216295222096745628381467339815607946750219170161013167279230526913802971213368203204008673815506445109948253488040359950953100540302132175942589964769726823971726583760385810970740797456028516539845780698713450239462192895314774970285519070821523692532707369275914131984155962137451292034889471694895232227995633085315296556315316070747258060154793435398364160212005747819739530237963999446880690976393300951814748098508940645166947035985937544860838096403587147158178330109771099562919408618917572835385135847584576910501818404980976803106420408484757613592715635725349152446712385004908142252335726270467556838790902673007225724859318463086032558870397502144515500288103979543162189566426131128032998170806696688516224212462942555965647513797488985557926443501674244271264560951569170206225213573846002582381679042322442613072634647583096707556151243171188875899744336192079566021225651899501219344351111841578432472985039800083105137214837114082416569729464411544948881712389005944085755024294501337117797776756979946235225744950790411265587516204751992128873159910372308395555959963474113678476787561062793084714113626745327226403070683757337100482221656237231407656675674552116512449514218570677784367933698956182064536382042485638009182981620775844750973512884539049085430386684908342607207759766244646026311409022317913774915463131082161056584281182513135984759610015289224961044380279106915138031354870734634020751203440706477564111025378533354233736913802055815673641466709045845708146862520312566335346448363076731913231862245611094478119701219979067250646087046334860971893027681882791600668787036857259006696789496439461686455598834380640827713146458521010242378258813909716303086625450209711991126559485516319747760225561143875155595605844354512451358683954599935445922778354058936099796783192523282680345730883498866483400505297313816338933628456958420911388371411820399900429503784176147899825736045448906069081984166731959611656634635917234052806318517978963560387976959812984766715744676912361054639371467115958107696893115714167977425993510075797422421143553166371105507313903550080049153699488815110915589782427281178767447178812873718370620743522184982806143475664114569686768437902433219337921991977535621460747993504318312353856265542903786436729348001379202819885930500447260802708549972344303604339935361981375173098697197990700255492450385457194199311188132790113894943266246293153870250213308324357444998833674684436822682999103608620408224286257490336718056471831307492225061656773796349874361954117041765911240531917817403244672823802387261211772221405643124838958260407429853450252956493881971877024988094805469303197465245177470220862729500055068786665133467883463361777916924057376272354800902052234541813287721871771651695056262720586517314075924691315837958302665801444811797961913935756237316454889089301851326788311644478890716914200704206094505388461135278145967610847042960243261745787635246218888451236121899464494996927906972654696460299339325934672079843949366498378340968906355480737334105013092351890935170227377034132376398927049931378197208663394543557990667054910526049989437453825930554037147729895890123431269824861735517748021051791786003957526541669159519773546165799563016447161500762958442436171259888867331407750388018130429326168970946838477975414862857046086084488842591124742973167931368941109688096274114691839928853383019774276591966432778078259516002582378794904814621165982705224753090494255584263966001025236008650995669790992747654878362006640824696194941647803545584257415559864754949705660110006245287404594147489649524863761442448067861613675765081147130590789823069005971573308944429318187392789746378196084044921067015703082652443182833609411122104016045878070310477887038195182248568012988127017280032593319574049209170098250103604697825389997251182286050869919598656389338493671406415425164936837271440641010924413354854608730212997915608517790411529280014152146086491684031400209810552222560830210502653631513371674995665627662215329189555509768281141152159382258480370116302735416583899286660411160821308192582398283925371620169120779534462458645295343210876456757308452937205413486737305897347269095815740705894519558973300458210922548275309552245783926809881288366291246873437328976115207107515051676980745908887692602717270837073960425548353664047655617165141303096473615602530582133155736073283723122355226787026236810340400476408282654107236090718913935676675066969898140074045199645088713508944081727473846568942452839560150702979472102119616808887980161801042987462339649791802222040493873219676400930916151530270796090344448228647385838941397124532280139289031309348707289700583173699244234237593488903206354986110046437862246274697719885976169008159855216085099313024012784121111893390267081001562000755456860956087448454308821415130711291634343594711764911777779252425208322914505832145337320994721873852336987327221623606593356265338305245048994463440084626394655874944370846044964946835807777285077745360318152884378348096626714354641005166442972148378844662017435388706491570688452655787650375133469784108707485759685557972669610922606399110749175778393712462996602223944336491450811531574355920231258562788430472585053872578422981290422055911283440580287217531347836967365772205970608344641483387912686136650443704386695843666942719651831758991738491924277294054233559719380262110226645126022214351957838087272783696361742636133869958057795657738636121005775031179811388793686826442752374410512650822217908646540877422035084907878123403407753267729370782616940943212338571527884487136336209032056806781019157172972631340623164113404874747544177442437959225423779794329476492327082306156731912003535200112136990309380087916502070009407913925157859345004925317084699394363937517425551717160028938475246992213999099182402134185350006082402994081254246417141562622394931453743483399791246229749399362977105919540399761527272009734565848071900381870432958607888915784257532984184902227231202395303478179911542180313425395087786934034356934240611616115582594368761206848840048273988063020177672021269146387996981952554878516612375235737791552222950905155113337951196064364902783533206861778625012281128697262976940069323837439350384783420269091606488810341637026351275050252209800025859241063657474975091557544153345277503668862556624016340921290124545459173748051900076456196273635003666244751355743100924405435481458608428214226722358976334782122239502140382505985826021699212675427438700360491594725870017858221512893194256212680334328488653726502845742057610309902924049198976305661391651324124905799524156162444985754841436035095662356889139931700035579339902262066259025910523272870862146824239366212060574469028981698741429057557288133077815833493460543084819673107881964634220356614295662859149220455436041316780994298815946651156532692430106871926240035809282295059200760113285595954952600726504974078086085269107711226839443432440607184688373196222245990031551283385157400467579828952768942757630389017498330630312853153975184127610741245106406479469754394623790066205137896302851191790733513446774200577961584613447275798053185370556386803844367975227290454182136921757415790774121202379442471380953828033311716331376363256698884093291455931896530679517432644726236343512619052885973025273064146882271308342314156596857290244003142559386164051071662473186555119419032448916500142090275798511140241674947152831705619686257924282311750046540138055555353684122989259474165986342159566889331049313774108049893492127191984182051757917784535096601268173338633751330948696320801976770821278677168256523643617936577071572030032509105104404911744844627253445701222594293842052296430090966569974521076073327366550552840321684494386264101800406547484139829271671744609422118765957796090326724569558339278559000288601442065289486070703670773367053906016121069976146104334381767977276615239035942653956938991920505355858720334404812645747185676373538030883419388010763474682611297776627520879148324303288134043710720573749630276108184769295388310856719393584339075827288559035413640389933683513610787319176350973322363515645384748852283295237566279078694843068653757070179813255992253934221251376637729707254047480105179139796212687873282613412899810785264504961755000075162074782928506365370811391131664141627436555889401335341460822093582259607549086951847132849368121334968036362079781869901211232775506989990144366132076574810238007280261142218955306805650831359990792206753127344687357076834454815472721326238218299138868772052387673942158838000973204976814863679227749365456825851678573188526332757981744630755189977209728156798711865045546546485912676281465471494398054855552069620582639388494664127499586100381974566376469192557777194899061945648485739174496973089596842422103038841339074911309241042710474718202160989990029227209635852692936031631690722914467361259843802411599081313951718538163288761230885196020584809308961095528090307215601957555822656059895641160689377510446418246089293766941493858239410798274736732675795256016609498720939685747026842261365331659862767655782430775504526517428654372137306334762391472022031241269578943012024178148334017707227940778296241034282660011744940488970050592707631628546064426088082551059117899894773110350626129533162228126843303593672207616223385110912243869660846884316712138843491913177526776799225564467908455042739776976399213765869838321906149242376761707125800029885427099095679067952815487200666496556110819205143134878876334150724210216132822304722408527761360089376633553065514879319434136180187499916495706396770194823046594385872880638501903011485940321213713203047978755766241676590141040550465900407006713981959867650956138180224946734909217858681478087307542010694617472716250148872034419941440075880054436410000377875114218263484695372054070009645349398196506535372579089943979691768956725423317333787346220119604391122471043715914522277780743749419951535584818236094285898079522129456017385825031747059583986068025599176593429218722177664999617398618508434376061803916025726637835830891387978763016509324280267856148275164004844995274951560326565128673040831743408998824456464811428695826954354787274853783951339869818116260187618715501829030134643891637753205039389502124018515949206567785255690898285241223171672784236860257575484086576773075511913951928389553873180269709582248387068549575617918287996738644569179094504776620726890380096952889253304283748799523788665596141425477600996827424383779450976641641841677559376831536410122136015582156744569061400974361401786606361432616919728104711392765801097326197820754139244473161623653759283535163296575350594298801524167956631362286756728269866849428444541681310652299107743723744319021655224802787487196086568743859676013841751713682357155113625803137159274047007820576781179895279553934003528318405214900253495118719653192316470630595799913276840528537511145774042149276868878903751115531656707053825445140197499036317946529656904151891000371835329357258306636128382672396161209284777398612632803527080530073221503168668966186810304538820206845956552392511948760828727046828318355220040718396027635721179456897265810904446525547022520961057935803905728322494681574657773877099189085894496635375641222340704147805296077416097687311186303154444097611807390753595991493518897449320932121818304331078663956652573875791074519621857810262023588368549869909960488423954228630259028529056845305805216265970540851552857840267260851834076181579980989711599160979998688950729202259192668866040786345642733896948951588063120604065473987441596215136839272538163502127782067964700110692704945081677265594466798460233844873523569784290933571703171279789340808667212449924773084913520558236230567144799305971811584332503541259971101375717476129516223178661465048806342862344504692814274923739935655335192730444262429916944869743029426257797171304517486664626067555265287852261248529328470148330928966093555270106976596667116532475526456142808723527299639602900313717219221444428469138193525634416824349020707461441871740580961277574452829839990442424402647175082508164184982702304349254846644545588426090699826035305542881040028369494158637050758745201460691226923476184415146338475508091086801861667659493966648801500318280250753608100545330928583818461716204743260964981831204486994888436861234091629357387775883927045858726851446556681245779596512424008540616970115068224785398642227211338286940572105968779902500084946698032981988858244936603122114228519683284372031446991278791895280818823354925102993025893196534189044119455286172082100837858398107170977034967564654627531749600105247477669624791184005450024464691632800095956263786664709726831093020513779693335819184586861701595889869211939833602710270071638725030122222343066401312134003309475346934115073114533113437216126043775941552238622294733404585370847433418596815765347802092525342648313297871268125441462849674369767269031384699430051677678675252497027178500988925645944983975970988650096370699295525383467412462705808948246721184167500750963152453757582670344021422811853756484150144706777454911576670302398786369782068913563290424564657868566031137326866441386114677834358621577252594462505663211493272827987724736329678225704813776958251191627434591525706483916569849274107755336343847637938768696868966489329718677131154993631982712449194137020087353868734809368271485395868353767162341456613294650778076170657744846769529757504703277214048470952602343772272898149059342797971466096513118387745309220907444883213263534145004714170403783864656085878344578165082517579009824635392880487950954165418782697410568149195741620970544873825136073501785084188512100457681945628806852942616350667707347808047425317847113687125100645158208185855083477038838185971503440118094753783501831541193705195291386740542004360764795936893360199993719697085440701681245864331240614343389457890602607834917577378100546614247128211057798938562789473386633332579078061338259034805578810667104612904715488400370344099101721563901291477409318731816713358820439697492400382834370486094040587824302450690491879293383217081404301218287681382158496049428990215036131413625035358614527573147704212332920827522799051073434165656109878877476349945911276917001809731592934549861009271677215891764930872370006143452187117105250293944280429415431480167184965051347707036761185459102091921568888282858366194320337867441965946979567105136837762782722312571818446776556115890235722889249225345803277103304872545342673099224845414748308127403503395743035831739956429079198762871426113177034473260565473893906558767194884891301152259632253835316562991300578602817103613838700654356501594747009997630532667938592659910852966418861150063208286137724072051972431859158884404874610313698398354433172131849533783807618007538384008764014415954539600012881504994018838210017530319849152728159721442005997818080484872292153505647103958175291347060072850300909690563670783154470011745835307537429273428624149300081187299045913802137691985804220260313936017804327441219874236781771923048365519150872078571814683207883166872486483290367858702655725765485404609526409850048729688264375536446470496673134754434913386815756527165501894971146103213416552751660844944065324943085776782406228070614971371416476939057103055690755115423793816242014173888930677999090352989834657789276320117965276722304832161854647318823574515522220984114684992540678068272389054401305682435116728627019769794738184780660802607345588003635930894764518143288388787312646640115710978804212635989975773434758540683372045148988328280289641031860403610169948307483458921047775994499053477397627977983936588332737876463596323198165466789664928263855280273293434131266663157176032358656071798480223154522886792154623308068780441572426931848028938372340852331347089303090373263376100020161462689038279809841202554352395250277494902278427686116153392117976636369217929926663998385005299505105962386446644760008506422117474111771572068122837382658348101438930352348372974439270165580162454392482167189067701390798646563021072757096310622630520833952389181591404144388571868236506652835053150610029856531623885277446878110929616267562356436048022690585262944116151337315277490924630027577630976535751750473620130766747461190791789089754625098664553444256560842788872082969380802276408313563226509506730727618646076579691769985718514984073810768134395377819711232939883326910819946358294171486257721186548025874767193870783377654979464511736113244304205359978815722727068847096006162456749591561858787348987342682610277411880334923261936683150851467699811413034692002163487099876941228679425971804055549451112751682253746840143206957153262185693760143261597545227634066817440661111869782585507622210826863961950424735196865676243811582875964078593855767151927111375594758298805174171996151251905420253614949968638667575267880240109781524867122519043565461396039227026940897310227318535768565612642208455040041988931634620267954844108646175736916191091690527564824435583838480632374493266071763556110918102578792737370581232215206410351499087000282603592942587538801061190642510535503088122198926740956361131550093570004748928364712267054917235256502383843951878696742835744044190021002999583047594297668896214171485838890796126403861808396706137475786744939563413812120982968778312951987804676126513372605681488990262304270522156021562700570506008639886049934294966171780532162899218829958644817164191178989863012939672542189253255386141188226964146140562138483193597185531523965521138734782052624794738249843860488195425559912967501936717767524029716821862938092952150516300779344521096564008128222886230418295114393578064765330110737308059410308737061457494705019233784335634479949629319278191306947295173661940468051519512559259522327959631675384426923319991297573288093647905974178989766703502546464601098849010161146284130315005885114843377229308643386297639566039960725054543734006108280024066423644524942402993361983669938653620857344212413775743046954871981290027290998725187908466452099098059078460220584504465596728376999479007904759030478031361181218148210859843141127296198752107293411861576256445358443778133803122059684009860725212595288705560007258908333143594815124908395281552958813036660731847981888798231187342624123855570322844825478543205544236382240748938638540177631830239530218985152812773382822695301783531185849489904498714851533346255018803434122725153245767832599816888384854580763057490652460787168170789258465459889117435561372589267176844609220157726479127656095252236657594752783202160135365196997964182326102642143505695322746046678826864353729581367196539201223507858464100621807132812107456284931914805720221924998884419320372009768880960414081645072630943178500180459389206411525349506295773558190750783850877323773432909834897223795876669238989605604245649844744477156642856905142269782313073163980254727962304023298651550264166125880810437882123327899896159386457582519851729735599684850693773625805255700845961311065349059832999879842642474836231033679546298117909325496865689625631766105618927889735480807453088726224800588714984698458957493488468532941402726080262551589584797277457521062839701456011981449288954712567359633773692463838546375957642729389840034958093818763012817119638613773503263602883446495238692373769185510836154573884309993314361455035779945953133467367434547255338378032925244836848468822334546583232471152298544121145804683840003423149991387755040630260339532135258030498797712131792116370273490778035564194734019966659567615811983066705581413162005141911397205088784192448494632493189426738777419957081550014271287144737418953989346717457693963081781346628723493994505928318519424808305712416864620969154380058207336343611600556579001987525385394002785332649367393142149342015412563090354581906488477821280673884329136494887867387813771188245480215320442145297804387270243522230268524507716416980243246795243258596418131211674851005699445500652120823617785695668453604465668739631115191346993994989532406908725814553929236197526021011941058733982913766071082852200305171997813403392387233185233884830746950944125364873076935844736662015629893736968433730768938807475889617971712179999160108634869670924925991356656892733692771083607026818759207718990305575668562052871166516551736209864725586995268514514905448908604377734321827307752921167895307804340669023157607401125671332771386516011628993980312455259882062134050571519607206622549246506854449571233825712164797127296595576830305388090595155563457234391477509309374542535744008142709381876958129546011935392651301542192896146546084196870797018975368966447894006765660770557742184115143403608281818145114556634637905403303067601872073524498707895572216897684929845100002532700423274570055733046923923352728764757437804068141536565075483375253537962437429963220570744109828800329810380387728921130214056709060412327020283123370764841368109808026353601647529456858667202680654093539289948449743970784121439882655938401179740867276570036920531053840582121226957363907922290439139892466139020191407200858966849322100079353075030942414849770184804025348718247226102905254506183215862121860453918265259575515035032160438561214140923443596401756383783794392730362446266571302717725593080495229461102319528111982531844424089520218898587509753971454222950935639062881032476776076511697698064915022525286087097103476703273008740274562001286323267794045418090754969627183994361508227642189062723173923210127074065217605270957298343684212180984459571356785022117280309286794492495658580511481547636182040376594110402280422922962640304318372308532442643487142842183385265047677156380013069833455604528262340451911339909307238161128147494221221886804749673549591459799668889061130499352923547310179267165850255582585265341923571614216121696215161128066006947106411333058704204453430008867243275163827195675658475346018473392362496008320212266577845078819625556578048929484599410436401235046664538933816353652227110385087588288759649995707405715297386280507994834825265013113111584642507885946662706758226677061911506937020757339134917561377751159450339970075125136152235046913556083550020577075277315900021611509124049225569310074764374872941705224711017612695443699393412537293650141662068061010693367143961474484790882080910111222772827419343840753097681502139912774540007709868528346198958960762809190974183867213455387553989243732260173980873493230372890522958213253376830859248457698061902569885927658206151584169086450858017117668697430857463462639824225858382466350718595445711180085093669720615031104475759545866437747788711920236893748727184892378957094951446193414076244058315198309162331526966982755958000800268401726430098681043560165459210241364226162190812389699171283866660675538696850258389653495430752837867473413017372490376323352466403893088067618147983843342906497358911681956967457891552523393831686787759846099356201237872464045345079007192330545365048803823285694980838350645119470058116565465537237880378359026593234723469150954963303107406501442669951941266666298372742488033942173107843683165737896593661249931273745308042310648018328557958717945745151847910529859557359992746195279366281016133688164631182767479349178834567925007159905639445927632475608178835685666611539304465320539735066638290827942005557045855202773480563805281835098690708775468278316436089423187395057192692017060096665630400853960773325790205370487147761098335447927108745084942975106530833019279975874425881287901907980367506149101688567805949635632087780767050606928781327397788522153186914543174934466465983767928821220095879697025493014473322248838236766173217156228135905674424599035501066391013085581800428859578641702892485304617148144260900159061659222267348434912672188441595233340988009441023548928779419931731985521838828398457729987180990670382908912639765081812843007696101015055281020567450088376992980637201509531801529125011347771881905243065154578527942569373509545525301167465172236095102122481040443217889646375226128242918370839157078424453261433736352440158774353493157849364225600326778233339021834081316843613493440871951264294799886489902409832231234600626720907200209619198887083666377854591283990158401667841238116233574003063220788667459429287218162247015722285859752570089200480743089920741714418277005977778254366029302629727230528561680711379306915702362933643840498208692717161620215174894091253438391664424800624862652879265884354962489888939136077455813379009217904335844301940518093087606551157400618748088677255316302716560325528037647479481174802673017742807249124177476746010157916930646832426951918138672303186431170644289260926788847489627591146412195746408398504406687775429534423170240632331961521425880741402485466004699304883126003307672212550380424275750867132971948704127003252609207147250930004949303458516626260117785791887389992537435561850713925819163568253183885405305532695914238901044912057313068207089081416941886553177995389543178507344529301654472931871594469553478422405407405125056162864077758998855531850471431626297250537795683741106558064590635516668337448781907201107625463874871408325484127453279973706717656450161000007583752975769183696862481233277808174846060759334474740151565513052775532115394861209718305341440585428903724971111189184906476719738891251417666664553361850588934586744175845436419588206719140995520516731830191960587211032170064520244947789008883278704410374820990881810485182183359181526806410232477745797657176165970639721394166196970345439306265298646267452533415554178614498694023005144257931510848070053238257129166851996463560948652896434378870132876762859239377824380955545498541736297883284370706704970341681892727348314897603746682104881707512974479936969367267789704213727899635641686064372153709883491831940028176636224797613813892884184472684965827945635136919626906966520567075021373964552981753712318931666065498073965277474842734226875537894356994179756790840113132215832718944355386242058288454140169553613763881965921913319845591656684688756855233506024686678149210042487934835580071171923635984021268015477766043677436969172563348268755893846576331978332451418969721250767635901177384308315924022977707811914402578986857341281130415095949638011950541961508257027621055652165345369708826566830636521197691916502323547582910067066553492649733141196905496300409280583182952341375050599724836168009110999538382062525205632041678500988290176129972467006250667974127923553123347515859587669361246002490023092556247922511352658389679476939891978762997118468529152306171793579677069196637207991790395268954934517561260710330366857559697937472522250979564501011722373625586762123017609623091433069708971651673870449664497669544644725398059331978187930678300629345794212791003562783857294358699167258455648275246623946365545104378436267171158077282178895346454152781799998817976969050443839169348774318949688093402695707521534503155129541066779908312297123867941907570155253551924916884609012452470031925517969040944349873669141812186033889651936643008947065810973876584436147210368418467894561097776185961514754253962222130848703291257604309970288329074576454980035097531268230277573264102761037811706879423587696068527173584929420038941169875552516876472454635862092960126385815153140575993501216810402962410044658820509487509563834524311140292671066634661832267705921038911374634663205481955345877547148976541438638194650642514444216827489807101749258522623932093081806995969084165924901112781041121535999546167673707059066369467804337619167915576352781720031845736605442566953096852128177518489998413832400170782979388440392218448475689918045665140340930630004143659847406791661459222519565530554064950946733342353528483387905144442740700486247443962727216756063017806671417138702555713878559772274740856966562755005707533744686572375318567425650188623055408036732997007960037617778884531431242103167791731546132611216358099865612712096990215313825883892637380665049106856530834675383065475735582665424370206274170891278606604177827512531756252765493163974304648601741426351663445193749295194936516537162258030299120755265392718849670303869749766728221184142081735560146809464603520608761050757735507023026150261889824735431089275326607445169092490881287681976105290169147311252364612682163633399029840593900167402434420757127731196274103361545200231392398945687484963332067655911869312872361330171519346622113851643053673848028215438895369950690758824377105679193731061274027656326982445137117427601411487480927067172596167075434204631661003853439795511350468152031468425652985155817020507736859000290345465674476355872676021619128625732391901433242508084630466336560494775690131886292977905066277980637009331082944192741420126141465924105118042624569285587406560177204208602035742513851479069687640468471768233593627269241966481986234247585245488812758766351416567196404116927966803972189076003261627244088992504338102036956379577046813092812510746204066646616980870740600019453041171387014490139025975214429153797036710283266629515351267742356221514847771245265135255137228138030667747117697070873277998473020667096571964078452186149616775545772662794551845722307070888685090396202024927527508740261345622170859915523561032824299170594079008188721896820451575318284293962020491436269753768803491436121395073919442388046018283725829274219214374823677355692350181261610978559007972232214294289741340177002490009297728050212614628377157383925473652601456307208585514252496184465673742693189342832300143482304248797831168399959921414601802280978897316956217988472095175660945520848786287314494079327103376375134667552185234946958972145707933305188509564353590999291899765238661792418078800250383602362656982942214381362230217328918821656888202351381200124205536929310478727444364188789102302470337257080306889899362148906270445731890053725902599758841180508819634807976570400493266971319271430431108862250085015148449426726829969711009527979810564495541248555029517139287396394647269173665765923511161932135958346650999700339247387252964292040125378514963678265136054935323564901544385364962532295127289222551339156044355740059273610229559338351763094958774008211598408254238555388931700775515060163154328731552980314586183732103700741236179654208735270902213295571406535442440685003791642698264295707888333139304886142133275313624320437596627503746467994380387752371406360804118278476647579998244934197289071914504443115506062651196829636731022108205563612420874577545372436798250526121970742281516183624314868577566140439440448004423421643741477913869834226525291353764315980172286405724479032208591712521088331915892999162589360527101067367221199647227467783660939009539268887196189533632622550729227363621617744259051086924624070316825683697491524193387062032578063571138209121014086598208836023913318230965974579150654219690678358043231056092298048985812129894383465699237965418263478927138653492192474783813404445182046710611397662976529000294523200232478228731921786834894075936550657275151057364136545385650950435238514372993782521989331148731075524906469868599209437635723188244015191170614299907755613574094758606100169680156965138761052819507948579193390615076706049387390529066672996836403426481894538272443944125342598306675472233054224886260801429620410094141328450412865479701948748619863459750838585995147400068293215651645121963066823722790035560018067474374005859984587640257070416240257322397624767499389559602776212644582606779226855543773934384832727860016479756022736129366590039740538232862371023683833790485775449989278979237072414549532563101127655353380265417486924569795869290802349994906936490473282568494823533530934741187481859418660268080693494098045390945219652402259861593350225100255354938372070530948949990452768212215075503894077755147372358281778860013702333348767431422570963082863409075719683451585079587429053830948612319364226114073679629060820168860504778675111659099071994402683161163722460930504677883864585229094142849586782600187052584008574025290123428795272631444777329457016009531820438453923208308380080162468300248102094628436673972399511415281451402648261333104137897185479567239671868719560454507537611055745450054015863921017398739882891372046965758256500197229032417325402293611512644276201060707332973139590256077757156515617055829227622769746263843205613969464252748140654689064012259284292769212732707845549218882665010291814669678550231299073828065063995969215030008645267610838984546451930327611720750908590677019900809496948273296616914001723051325299127660247390457736882346091947380901946278196319053108506618490514586644490519493858457624653847880966261529569127786915501936836016642828055079399177073921779076421568803818688929443219639932278378336268870325692771525248035287622231879153180488240852240613352031076925705371973972712770329971172452482727669424203687063312465243650625765461358577049728656366514131142771584760040166201006376212890542989458997835132125401652428233842626835000746132567198042585904737179590045295303101519754035986919311021428423145159741212719386941015414045051668455573188591257445374929519848327296144267159665478788826349612419879475747925357542255003185447842572190396167390218842675895938706465217553955771242942026274692640541738987206833604470006824427635630540324635819857878722788331066417554585968680742405845694577584302453875921610346601246291417841862940039972730130678995098155780497809528112286793062812379219077810799053149632566845015953869335382492610323959813073387869718558763497826835355554290006634103936584121604403777416727212408765562579545231658604282437867564199906678711330568328555650650474185319645699628846927665392571302606254330132035865660280020464752803811643798920788986991926899721390748662471117024267548482638826089044938252301009857087074460160013931515762826605777722953988758797051648163727096532833274841768617966706119716439523303630062798144912447549740451059295542083067229536047470442780922025127830596116095546314362994684025390754260980461581053400618143251605050326190261098936598852809755201961196941944519860296122737320535586953191345958223148129483213043504796329018726954193370027411700038900676433562537892889787014126540490858568679327559655741935762799708401707138035798549309636691229580763176567677939398406822060670418757262577449291267234390328720681743425163258172086283047214572632698380885740507990949123882448990866807824372364137953764917178550137920558164002221533779854474654997840398727222051965492402963091269961853750561652910094951716974355753624832487430808008026741094755680072310983205907143605652068227346162284241935785589221154769852942162271712300082994160615452988042277079145727938572383863938558045985287102549731966092216551560435723619898296140413839948357524247379032671696532549999023921961077038556702635339828525307232684813825165216317082214853091681266533892861141846987020508086311793945028423306220729716788199644542112032235996454051042414443056396977690452150080702856396878741576290705433813408252730451421865752774767455383303354456305820787397955023817696336541214800794246360778719405923926122090955155214398545575693728499822681119044566950995612549268562806764930031196225128241058412343960317793044262460995534594702667264085421001260360637424128337133737211037733876350879876895957287347529188282797030595072669287962755073728122692696641679707506959364243055950870146588237226113832202980559985355346484301185880536653406570355458430524080651067360282205553505287424314006176433326987958731905860351619943473000598370791578452081619145112709330969407883412382857118285655104960117052674841623400078684752165973294342788441987283862902684841838428980821130096102494464569033295156146232970913227116004028784013745528260925796310451330561146025111369770109675761201476787837412570863438277343096849753063642972473309294416260479518516708078642239156490710593125227397161620560415542832276793065146795018918150776099730618213378565803606339142326431286022155496667601971009362262756681763140684878077427107134971321022237661392789490359735034040820260608150141174583295091039941625818571016397197607073281177174744419373956739219156552773054676751905162450928292866002899344909677358302747621537812744583184812173184020353239400553978636342604514035820015031970641096833071077009743293836311139027215054610344679838240391107971593413502552669707008196723563916775530084321906550626693898730769024471733926328267271601547228189173031562776667157857885950630577318612481079098289114945993818994763506819067287605903007029751482027918593817759151734466938792364394631087431179057592093355463234531611168324723145732348339740843921076784346229530890075911856315613160693166805961446183882366185182190175746060329266302407907405210633897300744630574228160332389476661633904994273777695837817475232165593361950492903252035499780943954202537006082895392805350230731620982502868371919470247840453247912918020943535780618838098772230915128276185218492039354619228691849188237171938145763334155300640602710573324484552216026409997988972815955641690793904543364197718948828119160631550988497511515859976785785375127895048741165013609751421225254501623195145391679465013359596747425369466274711776305850463118280400557566275094870656703903331834708712126428452332086843525511603324393176728609644301317718679102433257718218055879735479644647298115893051691547323361030275202328812045748211321961469086624211304515965460204770421974192070791588174307213398524442788463299863449099584767882113549466559082966413263151361637405216323439961987963549317642173219726062977053343253405695771415024662965856929994455709919984317369482834109240045206990486297526385326020491049817783130442878398958460100762540605959309854118285730476561059673960236175717618320901761321183602076910673536011738338594575532401847470393110308993603263315108937035065580411420542316823627213501507056738943067919562550035316514158932625318141804527755530096537616917751334669201747214305039000359789656435255112254642185836145591525442862164692142900394293825269138690917464880602602670809715774651585633146280481409979724913190035839941440783183656335972492161497917765147858700963178890985950013543033258000961557249478452908556837588508681698655651587153838464971992771873575152403380900655690742843887215650910701105865640827293613301095776627271875735151446319711944264474814752374550536476749718070767178742468511100058247195218792070156934499875427509447130079792424173009209471426452826324910850736568199147216752254608311678187686723626379596444050914473277240482789759015033457721456271262309238227251807295714221252091759551144726202188359138127365198736680524234083629395760728383924071671266926105122089453719862855234696617492333703257662576834377630109516485563116982108812807670559920675327775033823761872964247606668786064949133526998169508301592311088977495648571541274694339851219507791531555759975919460468000436981743483179004364950745932780712586811405135871309823164234851347660629617540824608237730015320731558962415732631619701658222552505397563845399738207057492455258198066339671534558753757506133239991307511093703714603193545292056198089646406464177891130611535926200606062712546101237567151171193607854303451323700531823870897976975768272435502625552348839503338923834434851833035180816774876749364407137251744435287359266490620662280329639448969872276471746382798941859366462003347920881974943358580521406744578888789472439792063221380725678831421039395480479696787704560411420886111149641742690515358407189214338639080641768039864377919357305890072868444224977095626258744317184561687061986616317738453612249982569538460864592186478165103045799194144836830606012246037025560500295387311870973773432929283463901315395906663434347231877846534084443238475497659240861609694269476264621701273067984131584127806948260305530045117658671530230822202208236828857505308028512275462114317401315193732477277499071156817666895216960085753244960823490817470478849462054246828131179271086726217853514386423012572630577661311602818966136945202657932822149993235836054685246389167620140980055808884192414032474133230030119396183141627890652108416749187655494101579337474515703661578741609472930102450989572375483004679953235203732226028649787705950179889190691071493927161429240900856796851724397457418546909244601568238002653264767472929085279889275007997872532178432755941319552523323783713372669215045535420973999327042597951318518959358528399711877222432515265552845632077635305513820984174314483835115557571680062698421341461072390221332679447578490703668824257970724783629965909327314153138028828071530299480023230399566024893797155161973878586477458086740384890232628561316496107685329608140308219294369129774376868388198738457474940009965743660612299077190982037291083485575546294046517213271641892017565479184546709455221050104047625368763157302365465779563593282087451092723103101249124667038314214634950342336247201190315686294373690329056472790858020843069639423619891631929727091093445527182494541390013583313337604179451367454941407578897906203005562458573918486773190023375277662691985346284882911727205300163177587807587393854871651673937636280254394717330356017058777677783597917339465033718405427208763192646795695846727146285015330743832642739144293210778470735173106819135914412290497914437522549292004408740441646667615253995463961252062839665514730376403442907924196360392954041365961903915222600311668289956001079254204821800053210617056184746294854157676441993447503415341248361924811157663306051437105005287905324985671189265875738349452969879450728519870161983110603843984765316803481309776902580080820247652609532864678311353785196689701935031603304671567363933089188088381399129695584219579046482298110320706603852633554618336751849150200438072323236765947621572470508825931284431023128091478431532658828944687899423910039322560347439160681135694508362347821891557415245185538778128713196847390499724279032555052382912134637518963754346070838508536402310968623404255222477611467506245077631402695578434777011828917548809413333599806962772376777525469009314597435251672863608592345324978888884427218315700859118126627412831559802354799704487523802580351337140760336194611136572701703649437081513232087096759072884239001846981116311235470372783733260556843659149448729911898661847957685056971950069257927006953630763718141681612961183145255794495139255863263063089770790699060607127429628508156328745532952455467450553501471422530048923405369547365768851705786463607166172477848878237020846494291971812556323537529368911409351530543582363744528030754810569191898877751157789513510793651124504670928329133825496976008051251335331635421310698525570321402430676662227720236242760546366752799922499730845089770799179986927957624021146853742982421466673585340995379374141920655050184712813502112916540501703103721183637527184569146368996898717655315358412174879604615778058810084488980407241850072579078788827071986253979546194877020555906441159475418855453903733813550449521034107008258054592981197602277086396465423208457175421746279269209871093916351495265298443375898083915986968173180338847638612021628011320239481685426795244062033349789444362324509416192666071878192011641355046332735790838167019837387219133040354920776286741844052571523888865958520462332824725215657487860312143639448032582624948305183504735403193746722483493780903704799421556470244803809689477134485533435498827652555482917496205051551209151216055262574372215905635391627103265863694217870894227619455792346112411483354955898760763443088555174344493989431847219047432785011523214526292350814594326445215454619491438816762287272968382591679806946677294251408296130029777770835424912657551679834241764903855818724243746119543518424307415427960825567289239929117110760918795081277220760307841445366389058906428677049338633266570199506857019125604185527608185857223111129416170279566941638821344580696502398299353321861565604153041978650169478699366458152689009404746742653241026742524842396847126973780039149224933587162190688725824761500179560476739275519298614140352050987516414779115273687628100672278923225876682578914295065552730506049206385484684177605410601066774876895317329181405504644643582452585427108436484494760563857819076923350512723047802141112128464202609992055825477659643015392823053472923028777174332531427338357570427281157626596000077912356659787732735693898154014400741097460916284564732798365666765262742115224077886921649924891479834212189591332778680025979738041020155545805165856327923533118548555674408051715558446703088574957583404478505236438621871145513879181234610709796037820133624395602123240863365639397062709822487841601814554110039898051987127744491395719856868764612625520418431521984313021279326130754435402558672418473413008399444775621271860502752214758379034105052212450801191346948234226684925467246610492896378256203602725099362419114162221022892583773294238521579338204417844999858743928556054890195444172974084873183827239788630751060263772143817866564323284061481466975766002639972166887649655599210658332134439695831063369813346953576278608566798955544188212326965351950764785656920893343574830713493687973712490085060027527325855468125210874525188563097822408822873069757147635119033500723189738982346781671804370064769228523169181250439414787812280376108800888356175790327900602802059397784451575028254732372060784934909243929129125860973824671103096942466006441010832011411232982348219643710017074222963904762767612543280858346670741133346945531963365439302392821091658894294254067921378002294991211134608035506579386225046140016946370146880777564078916976404069220375320660377365574076934047732594446524711516059464842447469239141771455151707006484543314825639245449837868555113990048286513374244169347423160910806172929658297826271742043409087596601789320197668727048333367134496266924924882747002807544091858501676616288053346619914949033388920843738183832511933599831037106227885678889898427298574320436936602310308701933058196080712213944227806006975099130447168281260944608209294786579949849807851674301901640630580153323553898438449835439165048192552643953890049655727855846097466885028367651822841432906038149069595268086889917168766855811144711942898357009359287544215506781623250282049037387684284368361481066043773241430097286951495892824179352742035819714497173964775459910537729031188331981272533520084179429342113220551444518395565922891171671865364900272761963360480018468267153207066144342566405409472337989171682049914632485229820375245210149226247693105609961929446679639042333599256882184863518658482551983384991020597622208875658293620207255564318141192563547657397846030399342023585334036799096274390294590432192078103351774148982243960033373822478885200960969951386471024097211425301263204846880519052962032422059408919985117092537824337917698872672348312933790990868645240848276860074061233099273277934117511698904522342947035711315789160920410697592875311995721312083816983283315740808013383324061710770379256591715251349603900060705682959231282579773163476520254341836353288800042656176424239453530453949964102312513736674059866729943118205661165915322112648342021574958355877969734795196611915852715493853843639041344679927786250800650289126626290873092248430910319068012250136405075888159728512264463051825066590499485054640459005979046934149467831680021717524779468873166625185119151082219835288311419043354723596552866936692771687588867493470993776620792282947916101350296577332483962550524710099629940229800670073040557863919559066934386304237748920272431131789151883236352442780955355921018113160542375731187342600080299384114465698677263396541192771023673828278542286692295269240752844229218747575845111395694250041736760680321029719938980574668356920127554152773950633484014148025867374567415697582129108124597489808725106550194298726191890929238600872232580962803588474646254466613582212510582875254257593097796757511779331429776359021645334474948261070781590839801193648329232804749499740777401557276908641783603900533723045912442857334670315207231731287772470493418808165868771468149698183725644671696133961202150076347734310758026925542587748721140710089454601317606614244900245079141755078732026074969657640558470248802883089103559806263629073058025351121541809396408079220237764862855001854014520909089869924820522009112640423685641810999443574214427830509704835853325261039069018898565046711434197658645672845207215582750036504744683695934848920415666679115508540338427246952849614418456987444429218224236337536609016048590488028206457696356893816614358797625307089566890990249937383096287222787700346658449065050159970443475872066903894361032770056020937662236704780015155384637448926733230373933063635621687916169916850127319266353578911449216062823328957587719882609056340419843068023378736445153558639557766667112571964618475835235181458727703502215770461034992738360928452756912166885590062780877676755223709839794117218099652837689134858469602582761752750352049659869428188677358184950557723563440040228222704492751877078056913791257731664274480117961443077869041103065043213372132205020984487606604631217323063259407643304350768668406605494361785333256222975958575624311719977849580469611791087405207694165798779402299986635141932137104285162449160200069437396560577872228650663151020504696533282486335503242957569220845459045116635976156114611255023808844942549362892279617066627826705868159290491309048702961575319958657775765546136759261444861471778993257947759465394975968214018652541640192689121699885679847644465432499496276805156368058705370900062276595374582710609212815473399190503665999173433516321386065112092710267860841484402022785217782408604470604557832692643378192027458088219274437019351049280264660831408173004546489417411821502142179109866814668591303622281172574277569386659135979734417272964252869479892904392559374245699966315625823260554517158422945838118564657490194495861125070827059539715069020775405401756054060045186185609590949588438861670893497305066128873023112738118435774547497236511626508758078215983248390931546121970985980092841234536234852478066206173412735407483515828742606468246297296376109190067373647882428593117465780745342776128460144073401660365775463480953209803060011038493217423194856703666489637170039175720093356414076002034236222755306510938865208203073094522061394937924106673672473778465441599815880541230656673306081216043770408326463704366539170920246834585348357534824123072939734701336673117605985933143502515656152060997687798021377547685883705594059314710414876161007191119052388560210186978941606210252547112042524101773734519391361652158885436158550233354016627644578995060298934920545007681129109573970472034291192937755077385875605575341496741392920720555522128135734214754749436659831885885730751650919614425130996560498937881416262062241692904967959370770612592704903066484103458431900924905175564002556676842087719686541892931038445398739826200484089856306548490914336728976319051562677711760283104052462664757819542712938117555772367091554003314994350604319523668409596056646619495114727104207686060883056294596501321628108234427367326923041607181568778468599526929458104452437934147338424455395737484819262577027013060497046756164003370248080309567074045249754246530362463225606003001441089017235425749202162078188962697446464230279800299749085886449982074052400140472044322491063367477605947031588680145530686629618812668719924511142732460636828849205654068248652691466566561887383205979457669579879771175996000271741648630861344158113419751502994466771787197924670380930154889438968188949296585082718044793279516908579004853389997451106013841710734523708124332145022330282446809739573698418162196302173658508502587588605300627642903490787932241204340131626589046447669071472140309013201425797551194457014981756361189584137459793451932078105455938254682423279924755250894505351313400642423100172367086186942233961408220807234673095284324998411998622992183286123185958564490849668237144404555912064807737783657888226339928243378147446458901225423244753009642723754061700360595616996483495398342433120619705234621239419667081079181605985968106442845806210522076615138771141554800106943267560271400222767597387765384711631361107190644551840205009199493720377841530640590137253686682720605509344238768617730516151368085734202744991965404216404643459301691256074589184747917626762076689008091310269818308755274241706349356786042092377002300387774067698712514671671415170141589685728543144559711002877956954142295999265413957349203845616889448391278369068620401250731672001292527155222640990364375996557166561058161856922049945172934377992624549334723275227470626605113684936365105039652866562912830885381486164970796096588730718423078061410962353426026867457304344310203821950293096704225218821024542195687314436152090599280781370930197556779063774092232609268292178072464998997536735332463005693923244051684915498986154780125541429092104019477365804703262483117767713245574618160482131677160961293921732157487928970791903839264314607077000386068056379384806593830036179217731360259541718749715884922712070296090596123423624426368946074679334635764728511403993333754650021075962065082886430261267554639654612532146499540798615504874761876483137369664127296425211682707983469824650523953046861345447325673561938054562238560256629154339958557325671560489242710624700832054226985371554275953487398396154131445011050940234032438837871834349617060233868012881831553270536037987749490689042945982872524910493422045933746569661307704304789851590027179827381977832219566184148459495775592375467985043017387017256938164049815699517257881375253772233864128721502935300463326793231005566452645727708722108262284782442200134429938961979125765545016847942897863931484427354931556170457678190504544985194129716482051229302921841035026855123834638639926665718063674815803426293405938690669893570441512622785799994054826519744190793156216293432400550165555595950041096358159940867728641704866134802061927729481878761888549053946483166975511796576453094660886526585898063531745936294040154209813025893259503019902280552375490132691903631903879350270858384718717085028086790865010378775142288703041816736316938002533538926673487565972928047501341314431936558950045381257292154417930705259628867037210221651998227406635071498985975284730854365313493663165305462351278739785863465242437812910553591177813387937594202536830539611421267889347185358103353025163641150774146731394578862240582181339250064535515108464097642503109761527149173504530732723800869632150644451972050494834067717028594571625140082554016329263585379232212143700580360342534461483521450595927539365471408054125448258798295518247469742697405831414824735668559670444595043105019311686542065881215210417261122305025947385043066343270464125081326400239503130023372434385440299131538898239141508947575926694025771102213056666981289111269658599099811641172092407860354917892494539128104076384531662807829511467247965119003104119682582990897202065407687800347162977774592012472740077265332782712389865949883356042857581441868237926104468101465308374943602867349661670526552706373607755578448491256724378790679319848162146570249461135474642759067491882245615107490507294182009204032457903890698845895626675579244080447755371302455478295145674607041315823680926728460111155322826949723490581037277992463412821126804551901060517014141171767092970091390099139095458018164261144756203849249170196431626504633858400599111469888632869073256384917036292707740471821121774467915020898556862050377842228576410912787999340136748233733255124281842153953717063871021139347518958137815390604135603105428792743916192096251884949313882307612001578511435588712345846883113010899940117082723167392669568299767752230350075581899439063433391267298930391422149162850496027125305509199875560990974445252128828514189069588788736639625420443262869165015507728762144352253497518489045556518320333421944349476597633458378635450759751983902665653242578391372150324898132514288222211661222263540500007622484042956572475979443210776175594979017327110500745969994016289040131687649954110420513043145890694771131732494901552815316404420767395705679476947988354563948690789680693091999239236878199843339006522445933398967472943909319987321239830906011641838107287610335164381039950651445921913025348011545637569695997720292851530397385019096869854969742240729200638424135543157884622177327396081607087033338998238410913155891557320984607332317183578473573252292326757055826675443199582783833088232028887980716722215783861346222221506430419411280373200797934901530494954756088802748272585428202749754559095703488147722787084787141793949626603495006040003300504539699687509086501387536105421946423410576099465156807211672112563116543104903182461935933647981092607023709563358813044348657128458319281477574101143883429875725645713181553660162156126752645248645972828391356052835360264709725640255296125818774963835053396351915317112825439087547682513176501463449090491755625540002080951110722142932131515026040448211551282397097891918552227184053951074757380905835081364838683616108542485197019202562202988280201046361374465903459484751281877182608135685463058225517265896607036165045199161372311975910539274915727745980037664740805750919903993281432902506910541062670526132067961026138536706790882080782756009535568096592486538473950430860089589567874838409475773209985509398842371312020583671171332849584723760235661704696124668764561473473713268071225553026528321676295526593133872454617503795622875513203674863850108883587183543263708694558307261922221676429689392961537357233558013435098404090766328289688320869201509371757941178973076882123263050294009076739004244688897055450602567099296925668917220928026311424834069693379152509703640587785611318541152806129125402206605564498728070931464539434410693275101417952181543467730682510637353799122859628108217673836345817726191033543129888343613699876329684718049030361101761032537235807415276103553893470288956422438526101878120413227137487081710504402418636798609172917406086247417598830764904478997627972491941508675892098384671059853291470571893418344197632118324861522119706691154068590021521911416570796530380207423265349274868893225598455864917336086740473041177373380719435619596200319961828862075139306272185887733456824768321190691178017626691801795288184628616522144942814084906869483071466155401196191374726184684199463663484885974788716030542366592130575270559470216331334725204899215419000974719860169846943674454596533880766757031172155375739542786684430365201806329660618682776966826129807496436193107978241009944146118795419374098177606920048103898254685831866367395032246185447762928506438700572438295702999179947236391525001636963831900966653210244842850139441158791276690598723998114424019295429678860623010203719426348971342866662756908197916628304179442829163516112884602037074744352132793216290150358224744735087165174666171272655965927355359752040847226889870493819557167304609442753118613383730470384503215322862813072472214336651510696709121627054536834328660230683548041682525665160888606460622742166275980065832669320794315066947493026890585610822262364099097059973151696644427944029397385430920190247273963891568306913413026653405952323131121034118053508751971805491688998160204299368035757028975938178460203476676703842586135958079736344276037040676031133040571410170822470360209939545089893935034108612243333206597145571129504191824732383911716094158201023141896795863972772158404838031707528228758958845161902959874328711168530084748971139488796204561788061587660175358341154662516324536382817173037487648645759321119510030831617812070510706328686033311794186181183382830537649422375488357032404870728581735105775805216850426288169615405642666031301180425877883017049824732808652060162155785278707077809020740354149608118205454246736407842354312834992832673695440966872149440216426054852432646844164189628738645231865769523777638111327852462744920359867926324710699289476074894040019368645099414903452978279446849919962493068980056619119426155651195633480898159040110452938284068852181166334555349540140359277898160142512483112504775946616255383447608776505339937395916529062852514384453890128683796170773038266235466486622798945672681114980515929503403163837581612429171829561641016314527691123602478870624480695184497976772761517051890360310189530944974814973615174170956136127204786338445421190049911750375702649176139295890589417991596803146935346377522109835015327597525019794459197730111488001143986625655779861523689858810770996032436703457686136359577462187009007428598492934330606110122971743941891407823747713549098034583012266447088523427088931808131323722533854946795566300080589322461752437370436906168160076275262032579016667380759737636850151997200103215055198348499796846639411064438445922933494943115688935114462300208443109862621916769682694828471982319518890111177370308341330284528227410435662036314328647469021136156208968801908871990407780585680203879974027938707032464576892254466182469026854990181858488619174012306463276278391643870039334053915290664734491326467760936528937561092468117872198056126074932256269496721199899441353478807492570196847191187617244587263025525836783194491928573104879504969423763584135571526946449329594150979976799108135523767331606427733806488800774494873136116952757618993810001101481410402383368389554647144678681313577820093555273668716361702911760985592832997726145254597268939160581195943773988985136573811869020048978569854675428997218463451925505145114964268508256920909886507262793204090431929828660634781333707677554039010967298928954115721574883818742894132482610193436133419592471182268699930265394907859908962715746690519750177810177178498352998368533495253613663439628551097644562790145448566406924215289995347779402766974634625085524957198144963267410249145417574504102324018094107075434436186975572022886478061122760258483285471563826448375280687710051228740680040219941012321771752420998645268527443493945846500952214854070477714833694419184411583241376476076479595854314163419298908223989755208434201214293125677704252507586810171495063295577625770464115535682154822960273036292605726372353594747122417292485245148854548989309054093138510065687084769355035717453918089339102135757450683421641539381031877218676116601092398590865556287830437189223890952284463535268939950509961354478439251415551298679538321967727493753436203726912626364167276515663283338835947786872728840948926408808440379702435874328916390249783924616663332866512828107645798507503395734641730905145076751123516940670947790929389120207392502119214451429516560958912251146280176361299396823773638548658963815714349790506313232747098459920835390662492818607406166786853939503014517763711099779708717625809721527660872895631160925977403757473216242214804036475244653833146363325837807238838587598348939484280695799349459219768636401839508782952820093166224983263044097371349842750420936217828301932630630137071205692550069633360775008747670767416834659400340455581518137278531293026173730292848299559493981126776537044008983711182921926413266559404618959396516386061665881250477671136098873792603615270640818139600937653333665947098070656024723943476188471653824925595552991732908508404078997227337538082644889103085672984052001523262414544500783222182659814834065184844453728763937880544027245676485935198865791700869473678020723514639136076657944633045831018261120170014218449195814377890754427336121080271567862765949660060452601811803459021964404529816676978067322259079218542796656527094192084402132797781275842021405396132597256941084139003567685765363311913732845696714352638454380685069765128369880766890648235337931115026365172042721513940427055099545259859994399264510283466325225698895140742806062050108080091671872667498245250094696097693035618523424163876096888664530292308135396446594621032939102553570196346232978481290702626949027314764610572371961911070665774406315800472354255810721187747968845799714281442996264010107466460722630560906459880365395962387188747520375110213785128557340421994491838080464319778967500324381210004947831396817669089201739252257029334161039301478264910339772010365741430883983632439663635668543174526766707348060988029675107432942724602595416072390897315495639431080059246030785640151207392050451793865618535332350002891535759847676468155909074539222247161303214667397118922956667874487751667161931951124142808408662323349077633780638871882814237937653106534588771503731593695445882694817876269297210505308344960666725350952216348617765358940374757658700235508444526267383543543199155515396290462867061040246190306733056716414636496396600462996909761774942009829973052446590060493913052841949565236103209936266913557619898782138018320827745217533423523959454089906004535772630793304802478664800778631320647304292315267742190595175587237797400397441918685001639203513416959547849103246572244034792980474547297942362113878321276461778179751840658786033729471149467735869510921765352417309341929094856089790067057731164009267140176275425236839629089770662093663459907848120087497062218831275003732085393029207819552816056626051208657286442056288357080855566075112205694222055435612570718072998041870324251054357232752053021633397804245882131355925039417384754594404350230940340681569780239030521975012603088885723599163730098586514939542456562476774539001893020198080048723217497246996270116537470950554858450801735246536025351172749409596353075597442155964235498426361016729653549031643520452984200774777339600497202204476726330694781062031500408033487314568822935548261950361938363458233864729840267160900716562246354032861230994349452469422927097469977898971357568888323351803657813613113298756415140031352614482326140872528586780627751735487703861806267227757677036663759963350730877560695494420176163322118048204115110294263934480258845215459102912687803869159200726386643283903457705011656863770936212596767367442457497692030450382518418612848158722956918898079394691498217120649750428789622846601092940569688500645255038378224885759172846883240513712677293438060251840546813574889367315625700984167307658048834809299543023206588478145424440796063759876915544212769706089463820506605795335971862245750542983373935818828763487570891733260361015838793450206564259049397703438285781002706430724953539402907359493828112022839215852356633398237383710403013087073119511437788606809495479864748039618732517036634839347633673554372475189938433224709579897776033789521436135497444125666367778687526840644573457215940083779611315510717061973508358382423395690694418697002296178518883464598507732759213227651635515232187361803072580762320151702808654273223734786847673699338054018116156820421616786430772017858624630104843929106103286610533642648349801632058456599342642674801354060448492604753239247720959346311326418262868318758772010169059284801715674807044482169732442061368016380429198275133957519231863808019685821516411538936383860654445241606592132449036464212219514757151432606439210092824568077129596315378756283836310569618778109150356058355721165147937355403817501833001841479407400678720210592126425336560639819288809437486192578421584583002921923268776213668926445992102040243318567164867429561934888115197646125635269831563946727664582050717730256105471510804665962277123306504701946243472788533847223767674467870874657131543740926079114298929874649786095458584901077322577073210043612349256953278958441278435616083278762108692193576142402604517841063942312048200891414950322136511033150029540403093653644929683508502716410602640876110614658940361964110436239379331678203472396662311294933126616395643714976062116528294000701186999450056638016701396024619172451768418172490670952752367899064147427447130878678906126305713695693155888358335426940116370684586570825136669185837429805853227564750776878020229132684972084002458706734199692709365445661227701469002654516137315650645663716188838189125254772164174636850842203488898217348115586984738264042766587796762137730730583320287324370106416997175380426671498718732698452864128806377128757638869801976335166258751961585354044460291104531735798683974360923647066879479025308903158239592991281818074984617814669287298325740097386935565251502733322292643004201460927178628700017951531116678395471215983921725935506371838259023312991998343719386094017306985485290075163178838300201812093382247909940711929866427806238044021198084823508492595504923942005454749002792186715563667892759518533033726549755799415718250109997930619944666130575665337728324127151833013670244018976285257940308677077588971687385939271928647186654596068398637154022074962457361737616837386817106821026780890093266593641326660431916734071435696081367352916055576651008754730599917618543025550256839701901187740401560719762383797864090994747019056633337537823770287764112079800055875912491094832272317964997250191314486020390093349299662629374712951306698377107860919847343982367127285590478555123729008527428239390223588781735770371432845622075650740173393204587625093078053158413123091269619332601771990155307725954842349654515411233563668202693676351868351491064295624968657631824043715394841696983955721143041351029503323678004662063823395168119516613366641562580612116989206410580017245456129770617138808785633377386957542849328385898442428364455499712849194326397062036468835942411456983452507927751002245572426241002444126105569001059927036284479715085747484969709857593904299322847142493922742840545870537334329398801967134394448055646660075836266932537374012862446242654579039186826038702613755478077213112747686574241854179130495142794626992298224056136645053911372537935802647221793092569733229664036045704354713772879142676012415169417484861681677192208293597449236484082597049670070004232897799736144499979042557358964677019715184049629497594453109887941155617367974697734246563218102497738526331244014788438814192500029658142415721717410519725436454205644913314171843279130283141488529973129623067517131130396083952598091993978487698194406021203719044093347654350680684248509563668728678431733392494327057560307602658969027104272777077930367546372198315844631736349937055360636559166842863408038472418582209846602579153047385985232101132100851480271664821978862504132483535121066453370132891137642231488500503208791362213420976496819627388626069738663912132886119173804796548591954010637841424092824208546148471157851134952745673341192849613736140934518292878342699082753601756158366398213342210623665437683926558506409127067861042810489277193710016687640022672817083136202171334881550556970653158294821179186086934945710283806755640559122885110290655087519210950770386977768334262424597308966633319680827716579099469800839444863375202593257015618340923128445041129515471333612458267283908760560339869259342684965724892780216476912480593073856963765654237854328792053788750704846143339430670395774278735687904329700305060814163768543707446009607758365308467173441022573388586977939592952669905774895268779352438415895344654820936253899086555735940704794827647745884155320976341404135987091748303307754398176567497580587116226528786509970069177056999315792849395141925999381072266018554454395804671172608394765187999136175856892064165410224305151260425488983279406105186144655761988088964556399731293558595300502705919216354152530803130756980641343015610854986376084328874282948501302392692914082071126544955850237008532635799410155170718390725557173073788689373655911225212613347321241487810637590832923316830500552849356705137162148190401469111315890137737934418602156397982169506719338203565384299577940259951909827703833599115597093885157604639676815744052262902446573774470071356806182576634933356517240077213301939317118010978455428668864068163514219301111489755829247903041316826572203039458432461963347262431167720663040006059524348868377249754775237520130275805514522030196057949059093022563895291248312234419052427127259134491837661501413641304163235585601246672635930797637630629997504004277316303656565071311948476917233726428279255242661317985561285650028715898442526270988621636706901294050730941767448133936400516327041264289048813525227073079599718923995806462623603056111479215443982847320877533580563051504160889208738286700128228582693890359747707414560246334328182009295244840875018070195125369601628211284320468873527028515260453010181294821714299821998172312195540353514360791814915780418000594842497053920118779820172396470545350945220147811451243156839932768671987506293492931928763041914287689988761225277406530426445049218064329076642910635598967521362043788499239144389370327931815005658844093674164747937510231121269176256320308990730586936070632259381991366945690109634917177282390223584917080402099496706066148884306299415765017087310765231337715933029753008070515659755060902065359332329313581361298470984721316360082520454470566075791016435363963054264894702038554019890157258116507131898438462429512179543313486519307614768506729136279538841824986223846160306683114995000419940702021473629653549214961967123962135092085106143207356768926403122764224192203015583571007842424529195884971717437540031413678380993923500140011762247484979759513452183646502206026485178102920098846936222260320786675355671249299170825555634828623897900746208389997406204951320888375971327371888217989678044971023895931185237710451823400832078390529011190650388432309727120184659579592153935386218974740366437837015456198342226276524335781032411264997868129699885752582416772061267668780865661562144731415370535297770474785194866995519481345747591756058638835618975467008940694253339528129618114395504508336917642343980902471522625687058271977696168369309733681234346819528987088718502335957197275352397344807999525814747647398584510614340074851035922295690999042925431485651062655102502104419193303523286596944499394803125902262810772760583112148722942139846039528879766995312840013879122991068143879720835876991196127508077617757483076875239116450279927473427926809338503072295340555277987962126839217770248791530171839163685662508714585133138505953345142771735924151537310777442841633727544662457532111788659809554080185762796364698328095971965489666732963257863081334548893286586210964789967391714778902526877233795789610484526878164293007102543407145653512513540314086086448140150869402599305389993474881931787353797722922228065090594810393582124291365222168614443247046304968124131756020589709631502004549344578915196799341098788870351512318896896123928441604731047371102064721258441456419128369834135425262133369057434601510383366839510059654934486356963027909753284189287388035113316050946057821056189626689287925694025363322428595945356022551795940461070345333444200609176557897094029742277587371689511678886571315604148258404928622744800822356272857172446482162812205792260783186164664213637386742192974984024598997806004845637186720846247984145381223949678445338042234617117269810410980638462578434119502469521008680479116449019182479605799525966887279042140286152884353948153150313360441272248048715119433999505500853498126209949017875822763682395743109591458780769218338387265372857303012001831389455910166524607655761755017085390821925220723910857956881212099889554486907498230162988998848345771446865646261620680501119035421635961915506507996846896622155693980604283033663663494009074838242084337539005857376547725682627930949456514402691424502285014118077670429604394881824422707890907694042357716891331594093402854698375694870516517424809719407466106948903538549909700929982947081389334517889143128532667754686500963794828124634480687137198752762621719133201171312470148008030345103785958370010781138237194314167763591865301058957114931944966005879187261608151425685338348385670654522166074822268354877043318225981941786277542071666683953606272895650953502441894444754365258413134821335524471961359881213564676593939542910066489802234932699542137538370723236256399802362894982472647458794203781270729709570662772031529223055006722553553508649619520328282239974605512429312924371441603996151242394159564358228829873029473011008529400357837772136061258352030111175378006023626931623770329705434232006315988295664605387382118953376414825780423288929366038066229096670809322421657422953071939140173271981731119927626245291481950259720023138489034064579791100582166224506000139636713179000070799490349826630405378425631436521259637384678799836785077836324186789158469172929402683937116992612182630477655541143265715943682677592840832682878456316242690292524031264786212302189027899742582995910917844325921241623824638160648496808330036625840751881314399361869127148117575800278774510309954893002803860243157799250551958795443457255118017689807099931165388287632651261664039225640689151757519308941451918070825765659809179484228908492179970909963800178999030210976673378840551147958783859420932627603583625467260828213556797924197514452237229429566283638117012553186425668088981596911985228501517950803709314812826868345239090937451964781431108642734546298564067307276174951200774005446657748514775482807918267563605484524139004184041286853568196993265870577846495428427381859524814450189356495894397517748075126243662858753772110210394567727677853070862444176728934464535631823609661724219267585151371040986797597975348124576388229120219254899837286990529725936543364659647887360965803371339317877852822179887304237941700290694231688548276241084806097990566321762217355747744110830693225314336748597524144194144208985503616772898111386469938563092218658876876359683351948447141649032573637007385078114899777478721197294938920682343938780740860668327693847312300753790389226626282540388422313380794626350387194873762010585240209117573281653757737581157324467408567971084470875092354588435973899381534305381205880695397092555699087017639604786084985151722276216321173539718057812164899255870579427354803052964727960675591849127950326522315371903353781676886127343495942092621378922636132086611710332078412443233896308621999208715012542919790289554576743419125238646805264630933634053902253293743490949218706720097627334839146678771495287449521205672982467417687242010467850999383726085813439456176501375669404108261102639965252625326083672370278503864124506339024984120021108279811307671462712793486456900000914962533777424511091203232792365908084446504207507818726615992297359146759872729239994493186073203153054970111559178280346192789909286258001584265413062689067483982290984926537475070570377472065085942148071908156909185448740085739265869411959981606031435681820025635622965082022451842469018960052765349619228338721241082646573110350300431578735148672163257877492410760208352786893079103793269220650259504877748496091452885298878676417271033383273605256704818228140515677352829767268146797590543768103148643135063766968429288570349283776759163995994095499350701781534406116965416972779282068490491716851979052923487883056579461110377255890920510296463286191073821894191148323665055669243591257418903040726070566641860635273442529627856830667709894344414406830920235293677602957218805380882126561458657319737665891444525271914646923199982795702382253602158844188786999812382988227301326226142622916741646643637472421709771401960444833368966769426129851685624268572547986380323533124769972826663910568252821761036460873333157967081534675080554182647532818670957740857283882133338710128039229059910628346089371384239319102918848142356278510198667227615396741895462125678444190845948754355962085178995688532089572820230294610446982935703510433832154563881194020296303948881998577032219156620407436534913052559011555115443555789528130685793101225114791385270400721077842512452866419552148336278198568795949354718490519573253835312004852563103357674295554016265312079649024538061896988810894016042593710909449122191501538842936295063265232952986258089661899866986018217471841125896612300422650733601805339291142665963523047736215340402506043891519298675685382852843604387869638320654075060159223389590916001853701179282542171954698983595221447731795263375348626207224549811362355190114979182487039163571170796981623181510460887711973682516285701180130839800930018074653466855602683305097489346936276626878588090153253984577138251238560496148622083883168083575543507234722204163231744154364944689877349113190814840804932977943308292738319792431530459565843417798733430173940356920231065919544565172413856933508897593785629811621571215435963309820731661923103546322416186566433376281580746869071628964588697450338161043409244530377108132047254121574738106157842829071736134338159014941343198473807151063250843884972508724773057245474138351465103177338564154132785114212967907919136895978438980235046522169194128956864281221564426719694010023630548656508393664141168852591875073157325282882517841872616401133660142738022153200891929053565688206947808827138207324127455541922712698604613443075934804337673917725808703274186432941152853945430998253353999094089841292411409359569052458473400600160409658556973434807578127612324667077965393785305111486673528478646772099046315555528429350797548953445844168834366432999424298508938921134588650508847684361459575537640991325393611235926597126348750872608680935346945065525456461645734191439495384578498089619647579499749520370845900091012078288844089911419078822710019940428499851993424296333947813467292561578262802711610811100105535850589574263180486492973712688961818338263629495577159781588257510112413938280864041322385518551821626741147425058221790004810902293261955907217106521841941628630166434468978280241855974500628251723638830601676899920515645634273492415495113178553305699940081538571503309269013987548286964287702727744784621822764323408652628516834724822766966946898303398764704264343582567831942014580738109852167934687375036082357305409169961029713163107729018386233473132383440097664327617719148974172833096139079032422235202684656057999555880948033794787458472588828331065157493895179428510020574763223400169262129486294813105609613149732116831075554203395810527929816260130128746265354121088658171906011161600543801853599293935760985423404502989224024377183102884535613179429204616688003299935656958002800382584052291532965052075534146989738536745808729231128099233136479423195128694202062977475777007282896715761487969850029478597786363828978130453949367672507026678545345614197571059282155272044138581854017095104815778093196754597972819966119836470934219580018944967833653276052068027693821816539437085183911232787254634942688147207665908907933710112443370409166974735618100488552893096734625635623045005352849154397613586700589266320412312574906264610863600248185586383915185140237845728510652125676319342893744859552151020161002327916972176442925591019679514520980399862506389993740312110218149442496172431688770557304346741933835076359302081966952229192355689672610680373600941209899909274021486172668045611700797518793545672941636935476419136831817480144797724278147623587224504478111741992146970875370710617871195087590896059139238897918109134479033972353779331045068183873213942426557612438910873598178297210683682604162441426276411852458021021338257992440240762601407012353544899442936433907788540698316307202792129623335599061956426424996464235392784017524731131244068224819102227539484640546281598317055044082373313626777828704982767592919342856564204952464165534734197212621035075960314009766845798492867736129315884950022203041815021119863378460047819838738933995743402742148818870410846739991265297612954206769452739720150530345279922639791881694680684654353688743709343525098346573219761000597106319937376042843044126954023035728550928032007831383782328803237742407690855653191003849359532602001003262018431229562562108902400963943666651355413155438785574580910625019930670444114323525003891885716527271847792859191581629794770003607467555639681756085524474652384204019701827090541759919925426328223602870792198990371981015722164194768428554646983544888237430396898370920532208210176869005662755942054640673157561568682894171795893554063957092585946018510436361098156766658587695838396419997155838697288373357720152513090411706721378921267633538357203804156919162455718031049429943618535471516597450736247925050101048273652117856704758281663596020757553094725836065461532620562765644045687256886351688536379677688041806270860098228600257598341690150742288679438356838178696690740287062491879742086538693813065717224638781990998285506217916476527396583729218952787353024520001534770069138660427852042204258239471007015437557155486964208987773023338322252834982687008418134725303462638040406118644129887574398349819950539841457564013142102006459910091517823670596380757457608398205978318540739823357982650394900117979991372463159109068853227516691395224598145938127727112717204593744720927850853658199619436304734777257351198713552688970821310027300765151816953372788414443761242460408833391514347777697101161432936761947939479047359971188663561135595771195858456422292698147274524661772156194777246880608412402605706703649209725382698618752398666699096769952783806288960996171073827430261338968568327072570112346971190664712933882052962678433974733993849381158400905163579964932413308974900218458845896530037135096698397658926084481193097771031164742276687747128080046802546830136197644695093960341588593425513340810683304785821055794359064620835842909205167927713937823848800863114044711389689511348247157708529249615132131543116359856096843356134659257819718453477456865676499454728202658814199824573050411073974994803493080860461262363430731744278284852620925970955329891456658726094616088482361594043751850061443791122665541590087355650768637111953032229612871230371589428377522377588675457643164188266487785728682282314566563477020796363498823518344666004977412666279927862641433269488150054655119529344013678551962229888031003294797832978603625022808496895633568935904365199616124447769948631617860479065084802942882860616253323734263815880166745498821380080491301596962615517745684993491938103187070335910465169226992118948364509530333069861973087003934698520107820406661113499426329845566900693999446273375584783337433438197763580696352871668538837461497625294476110111573176168488051476888684374999859388294391385952968682792810229517007097450443745704810371030410573071856152111494215369063576729210369548658916603210278247463858364047096520339020360757053556090630161459284559933730904990143860403812411024438399973336627110569698434327833088572554493304130483459232707534504939061146650948202144622564822697430520362341050074834747847391263002787959733028314585110270295153064595294868898909070125887234373148599760803348079939875538684683909731669232511618350087101176479828746092196232818373395393749187697929799674803029641296058712570990606965360054954011549985593958906512169119330516215546473601831332214014499565108978396061455233015916167145878820355997020579190485498810511321563412511780565392161475411342076029706740054261126775730716994712439411254644115485570020398808036199229455197129955418091639253029447032761852020108135119527518319943469035762174978479985006330227740284339501232188754129100256680918693694275175697352494402480774344904590730941128358222208051657525252127305660733678967598633549004867271603907135772954907014694101753927029904343650477586071400810445334558789863681600959618991046440365317292230392191440486813893948396076515261578835743831645093332249877649374086571847564182670691102751597171095970327486346458649949460845242033760849967917104932273351923264025327209710242349495766738631862552936457835230426193974291007436748646956099362374028992352649700321223659544594023547264591538014592003858600249790154908782823011915065427428284152549044759877826326053425047702418773885945584124228218901169469053601941627182938759181829615015610503446423657316126570322284357242659045725098867992900185213995234028877249734747668573042030583443397282036891917964420156283735677317654956471040768534667959538773341658598713938469557451941602844718796409675774217640459094215012745922182423289856663223300060284854387972551571505501213624660278452395766224837679996041316073909497684177848376308461717071561479190879041865263357192535605011934450319578925624477615855909907067737076323349084334914195569667668774808070347648891696661623147706759827245099942473510218347871773528824236613007114133799233524691572567425819679580296702285616148358328024836659493039234891204152776528863128296213609193167883292298105858478234345438315779013290449925525167614040346169898630406282802515789358833562073446194428614486357096953638553372933291759220190788012869031333181166890238963913430960466684513942109580144595625769738508934926819149808141483257840835864129260762923672162940767019624767759869186576895998993548356666451296329285574672279603299072922814087117304953801625646199555797585810744352273601224195213659932474161146940826093464713894904819708633996798463779671558812596939940473579520667629555564509210507934713395514097849058376010655483351912748893552064003700635604489022604766174652854906347758496870068881843873029877051869751024259448573740515243615560238339886414311392508230230693743873587576729375179820167047649319474013168054760240080665728871272061433402675901528139126215443352946266547315698063198699021390793215782620083526641704984436987053807640885528556655356200468166961453174763769185064007423527847530680523427641268947426490221478263977801482048119626748870162376271241729316204490601727456260417126134019398351981695550833028083703024931263392266008875687253424362965076693928350997951794776364054352132135198291114672773067041523815106218949301453083826422920046637774203734392517494782743300642597978364514957233858577087855283750290591194208520475108484860536468861031340953444147369358185734182789283086367748828627274585918628697738790710766186604857304734867849181780413795434261492743954771437427032143808157257525447129610840864402912905626667769767658132661842118671695440361393667664794099996267546910375279776503080786930710498417781858677673513460753048713243225510544579996484709705998034133121405119267959953219036768132873616245671770006883920938604144253784197388906570215545626257139210040436985923184202907833884303775874480139733197435036849327657500965003058932843230000319999712738255567902796967054235479180221940107577352901992306584851976209310572128676591892456812526394684634289124545389700603586962935197769777963753866345241481520100075536187760950459623458445374318665634017809545294988109345970561548940840342440639874749856659082148170173145353061602819741599683011260230455785664440678908448752187696159495225985382818561766784432327764768840535756942259728472656860775567563140996243765330621373212401213000209596806828093156404777528590353481811875737143916905374652752857459138965201913797238167053898331751777241697283223850690807120398752047639998234971793158662791639679397083894001858599805862616720753711108149772672537132383341029257525486855102415527026257093054550367477389811411646483994020705696395100593671307478294078383665318988955044512391094233559269806504662514088903528484948176516642090880704627876268939572787321508350902790516365632989491039379706875267476116544394431916146153767586780520277374045602283156074673378020222315423085351488510528261854199082499563420760701240409437880144843577719766991102441801521303374747688696430331207045634540447962452627024068586725688534462360110041247483836966069821212864242962990511295367538699701230533737847549747967369401407196313275522466965565985123279205812477620480156936247724522931236108600731626294232544594286593240386619955259677131152184043115725461341956119409055411179085617740520683775815055606283474823495183051624073805456737969712919314380193589176581672143694671821297445428718591162913295921716104486096460484051944160441447344181466429767425823985901934396114558637386175929496713708020663015401389433385806678166789546390082094928796414660486783743885117858887539648616290460248897878448983790065033504241494373448114389978615942515443571175688338264464577881103485222205850014175404409264257215689602969613843127681140365638802836150105214805034115795075544911758524772905382932992575463672951054736481441892320966420853314726425815221221089324258608419186353088776749462541273808465475202455666574790100851587301564488643202549113923405941787886406355951321585645704504782900557388739536850485748375206091428533148139451183633993638434669560493784520954547848987801558852134768002131303880999970159898242693665170258970819008193452618242902780073941564426570674993904426228442339631277922797268465831129187086037316737887425252769438428512969851597103352336454842689654336766778234922769001751383958635908469756485843325783384300193806764952109249970767285295274073487404387876403276017660006567084115022994624649277544108191937426574604490139931610674979012847815856694749869340604389985277533724682260156464730452573532173090049404887582004610159136855314865320046171865656668696163595139516534450214764046410209380367328403875808072845808099842870826715362777629375347678733807924757964793577904174376787103339107021290694890362308702241843474768896572592118896051157371288242086389415256258854987251784293966256751999585975463288578583772465876327791312232467274253295215803620243299001435326555543563906100389238859838325021317665448538125255781841397120698563731800309211423025452938326807078836287425414662863134282807104704598493291212202847842929285591692838772912385463640345214943548349222463173664091628046929404203946831433541264731832461990017955711427772885421138348050563176761423033092798066371812710850684205347806932393874719251943305794224978244052336631098196373259659530488278785538709730594927810111772133772364949082017515753013674451587779561124253960283431451132865966481582169141150074610673019802809248202310399549604713386039019033668125270954902287838711725949897197796345272739102803431051057212890550479058350594921056842332884284563036525727304247785000591310204997544705947813677096390591337891232396346232164040409289971783647958473642579828046562688914631994009144271119988019563744920408588413110151142329287069459394313647327156028220847656126033773249962608789176554026901509455797960992775081496310318048238101170190052933079729978816742043092569218688018444744245130711987988493725983956336996693653505784805377781848811163457540407773003410326052697858239059220703686998248714205333770308365770767594548665443411240232860012061385261274674163102418925235238028967321647676545932045570049942889075107547188657547780145127938909329783780986771553252430525534359486218196146994061856690002350696515882857779744627742158671032570032379215828062747741918718260720539143655301902528998732970808429048173841894604304558036372578511119422613441980335426851306407159203244942317690010738437843282763266877405180329655894489620280169995202851546160040882526188442707254689634756416297748018009590478713290598654434887070292743354330285885633279421409594199615789643390954225519639249711228043118593654961239642002584014052477032769072076373801513383028344080893544335284348783062507784478802777272495288272393891234129396575639740349483362002490297298258317071940045430556374716651520928198605805334648303272402800357124484008115250448389077210162001409080794159245875939110378945582739933830058166159214183876941368093798804575454209480024132217561258886144160589223764794899255869489906381705050168741051365923948576889932746850212146587940850864127389416050862570825156094319129794670487780402952581776767267283122067260045382932129304553271313823268231711894141271449927361597722936574381776515844671892844089793269166777287622797869953274812432345642693356457429583441476056061161129535896756860931190594068292520371120112787730744425671423340220095160212043585993394703864717309073991775106785505645237014449011330658863642351173623252133806645625058540039960795201728863792555393543591918490286858377556418375710489106073742767670184233364573539169671512468963195869993756310814942742824806915790872024365901027094241094737667930012016462820976431122886169251166821135105607823329971793061266059111748316302926079243839377097901661213172319966874725768451487533630487155310419825720959048296194660205026661932727957914940900793161319971416404293387470473679309925844026690764652579189831519521738136358808844222148217771985210685171306076544042899086808896363151041333448053768597941101416760276667203788869039758493500974521131321733147630887780277383476094189271126313922186214690923865233921277180617227438850472102744473412143816364985755012541056591853119289695685966509198785783953443110450314861150673352096839527846490668123029140407959486038184074043375179509676614228303059323263022752784547628413290191899786169915142830333257134475244143666335020056247575831570966196939684934484400968888299820127704954006833139556526686018733056787657723704073233783609868748279489981869118812764234041393499703702401520558782028030806054950091760884194618398280772032959306864779196337761657831120503899177391108735177568151296291476429913403557166802400384327907368911148913788282344271293490725346430096978955689897083957092621569790925585707621251660064723756554448548438822447906660919941885524173089000626120231976509565515881216167006715487643859962431541536408902336795048908574435576362990354242726378667883529983860645504782189783512361732122277065571973389858222890694729894036118262331759667099510105005775623199833243991535265069580389283189235754118651602777158272112817310636888215107170112430496226849049826681156148848348172642861259937753342020142881907504921459067550798538587277428095964381042678703706102704733657654287771474233225856152897799586088318910798908411896402204948444403521960085761009737845409989808931123730587255898398554884680146940255935005069114759190971617977577001674340127889729589367451167223065900931550401329866102475323245486529467075338621065522932336745063080758328095317590019529715216517194677669870813384891899016463057345959525510717893642535196850854424654383835031989407662151675718774866341076432081891086037483810374325557865036672111646686383682802577797727971500918579717554414062600978380198293550893876210156763212718686023354348827528392589492434769160259761817712907934998028795971094203651822678187172778430338760368085937662526146691790540822234581364537924219377340347331217942991952505068995099169452127327776065951308027967258411993771215160621627161691076025842212487613011315422630268737587728664636928670502856850768608549650713477538837910706185588493603514455363993925203964161924734274530913232266579817239877928394670012515243479584356193693156080890054787733775066551084184688256411977753791729090803556160023761788959289499016950180464315793827797749094315929797320401947139531755525514603070070404212144420464358425057878979266614291448875384290512781285186469195161188790180145521377249032166506460233828384436973764762963531031814589748111002700701076829023876774424032973981917105694340301071601011702458801703516109864714860965021119778229693116711707700914959747274417272153833343760049695917746629398441221562648950390330999591425387551710875094914363063908722026047053384088787315072626093631313661821287022705426188941237891779626351450764742611934353763640538783460368889882395814045322580146741326239737361315628014557903051195126242842898625590773326668755830405079818325902162590626002347400059529747246177124981024218747124414842233855324720834785095499831051619783526265782295938517328845978450233369754400522106488719411396326460441420241444069799342319495081582224522418344674824975579483797081791191010394160625033858525015258678322371814680397926164291354951282342466299580496630951969767170721218831085328914843792326415986316722986405677593369590633060011597122534244236951462219967163501553698002873571518185576955122135727139401402539581653578704898127692660579459822233672935066808390492748246409235975711541387599099544597886046050066468228308364466872952098562050667399339547435894976458312719963525734543791880086464954118354468896347892387172917375478600533975244380897399026639629246278243160170645581102316899446234767011534672925099594666781062306926019902999538959094684468381738323829400059278439876330019753509849077309625425163749042526118987221228792539495581776324763336332326028022768456580820306321427029497557500416696202900948851144326466973072339463361037675378872824835429311984765855993750410034771345092242460668267525099898082608888634997485937646368007770964048802828814003287357269304141725896305250075366884534568898000208088418075199898948735341425027118113187190420570885206312323661331488522161240011924304887556638140825579666637513743480296955528307457385593977656801969721623654337967702556024937628836687372771885332678220653936536156516911128763344385361049238381309598718299295406249185317138783521948740289263344849011753331686579432860990545790894970598389975175212969459147115631561488278559085960225419897505609224484205367730604010927173785591350359566765150151098043804742538345421648140968780988401260461457707583778782643403415716093507854600073104250041352912552135746863585066699959029058478712065967703317939214474117926097106455906548766304784685177204315505189734032083951857770331822576237652343421423040069919596478604878099683709814304178823158327507806038194795745352433692776078761525987195780375753349435260781616217528795205055425745781718342642764521098681068112808168753998936226627353991827335863109781924963171464860981013797920139626283975000385357534249660652579010135354171796561722134272636952034667905791806198786268459401582617640289115149701082303875497476931777507982841945388903094991773108894612620182694440751440721197661453158351202332692081997689680742138760360371428400409822229803365686392298361668557033077442217148661265792335932863897591402110983309993339801055555816817837445453348593027254087397879907183284038867214517994320900870087365088260584943169072097917040111227475228128524575272777219509930093411362149588876016622647712354331082395116167426588007892379699416611405131681219365653533490007474752757988389773724530051444387168929436144986719650492681375769735901159010924438669533558268269240872908239408352520883213374218678651428130637811970798332246440561078269733403120118132382373150520400861554392320553965914812768356743049873164400632280860209674193240307807193011117538239840869172683841133630405153832609410672997422828394136715865409360243601578944609912206740290700068468537983959562098297835721433874240704350922470965856754740138055608246856586243033017527186213104064766800648613884331044944150020975190471775201941356679669004573076411991790097251246276035830548970189465646938702392641494266767347255550158511477740703011698145379604576090916818858511050324719961481087502647803140932886506254100648220159650475898967531731610059496138928155441692597996647986252145563969927308885171936793467638132846584363331589854025662493115565980758306713804952377083595315414781784877754591436717519823666048385532522160922388414207837244237460206423447837886196786908873957361714370438839830957577636709062910183089353698910808497539805568418682118050765008980419219014593543983122343017870972927509310323721143405138445493045856929972172637467892006054066871474270940952371328546207856988189759684851640691004686332611823747945677600613450065821968174314871651390447600041067676842508510354171329522339715883421682295411953933522286194713360744629067740297964112907266370451332578087743381708581487987297725178407987171320993761103527490430260227517017351292938020217249076813644335838495177979871536764895896445783585096214187302872539100330890946912422909539176861440856367942813634672500280050845522595325964693206015881077892051264505898432143593400969981098006888637677004296400454745286056352894251756977724493779578248907251306374452171192240781439242849046842066016154849563259378434787582844875619291098064803477017689388255108372653688166967614206252657968505189141322334877190926965246628179854884895957270534101591261719226117631879169161382955545436872130271130962155902891656759843743567656102295258403445685113963276877337441903452087206648062699809452643083897535329971482363533208857437433796436453638927389612841590958851315095536397575411736541024482342931511725056938832599747167207683078096919720712441113249118296889217571231458588660783257867149810805322324049836669386695253697845655889533722958834839481652013475310720505822533748626163673516733319195603592419043277204495488072050261766288995493015374256482872860949762728052370925550383149343440985073519227572811005925349138360955610984787200042128842395902900776692201800685651734003553977817417820437856174689819070821731292175120864851757330331439939192698847977171091620627603349493487337671443723599989232817851121067853987792175726979790521375755872095127473839314547618878953315225044043918316691709084583400576799694302542186876497573293187811829140816765290014559395837852205986180143036644936162962689273771462900989395942172311796676858491502606489294054888306999435121630716003797381499117641081306520030723640865580835910707909571702752135677440958690471180232729383863608414301551291154075627886211128398744487700282224522174065087107522466723469165097403413161389499226632403426286518712125476216420206816171565720466722142605239729029594550508860870230278468124467035408865855291424178810981252899555521736491474789614598920008741931426841604894232961274717052768418638417530949710634743969975768680533130001088581660812978658416473720092238250756296858786940733867914437296684859882943750949419004209797860261867171907853286668581590825967991824604806645857807984415903641997953947742159868142237285396809007928053309044787135269652856767289303688298335634782306571940559950497108943000617287140099408768890727772146810069252361602626194391213704324678115410241544832851749927891717791885180729079915516115407276613790289642116134159745572255946987147485801815352347950156668839660046154335320337412829281475122420553609951540691870697768316068101280289890845092428333110475365932041012942184748965653143527071444088382791580264315807953157507388994087114307224061481471931752321356169286913987361480753156062374046239571536887184798361383326139940642898966670263207880805078114508212768573774646278690479144535305599397020735600749333940253545123576765707475290296558733248848792048383785463316864790468851198563479286000053217113714522845180402763814569939796870975832091313546993106046895569839210030157730522910315343171324899753639597416046887857315021589093325350568659109214940106877158321712347923703946246846197889617401638546830622507148151208388467261496170014871876466272855206213500772736018680976261085965718107601419268112378069484318642068791773702873097762118976396283327412938253438578870085927951758827060412717479726243806249309298939531059124397511297649872291260252162456268908983764651365439355497257779884081985340503032711903211436121607324033022306779079825978874581886541416337558808108229648817313051782316108456673150665822860637761287403640994429932960700511346405130151499819960677109457275609609354944098969071738369208922327626839302284651550873998253338600878162691053420719694383420723329068179199914070573179091567303286989947279477901348095010717387583981791479185744514608282685677902280061530918930218456764673419896535635064328847264491857918573397125204650704358751255549913011039740730807933846591048301999582623889666113194169283657470187146836417338339500366732842228267159763727674240498233972981224116196772255101233418597272089019450430111759181625824954473006792267407284361041075715077447473252551657510134408269797610761880522359838038816486447468774197241980807524389990690103134341489217723614069458521330970929349591290222598893418596851758933647457742866572540170369147888879391465554216456392721827309145115662261777664679805855495753429542725529109745252728767039454735118549657976711264279487210507828832589282831008637330698385853354659876811113562152085689403399390793233437835047012571524404894227177972022290638276746675612343044915734694772816281275832883629144902704641088816834035914499404993906193681492538200914189063809499627629523290502509325557362099335960615600854030993350359866277134282328387087324362226368263624697512809355066572785234330669070718789429747236520455409110315949766236836023999365903780129194990439884436100701264703644434963956156777859453457689985393523073861268079467741310474087056478925456381512422343270286931861673107437957674392542986430351525026990235737571028199716934902467878196498779231309865887723478841852175862282113983730832991591242489742560439617806076451970151404160952570667134415124618371226347342760772567326289995495430346393933223068391844699401030857191932264393244010280563787035605084017500269684128387717356354025542411502023251029142340924444020208488234400758507105232358246276491964005646584815728743589646783935285426285840149150351280426826623338413016318485811799491612998816965166337926965202814990101762400597139580761258265938662615086098949984135708680818130063165195063082515670544081990537434317972859718631388240910185149919225676510437885286282223702034247150343585603095169152564715274544865990063144800173987552666841314357236758104191835912400194667504024262103899358889144798826027915437188995097624435376609890463583066414968829810472567383385404736314027560016171306485569338723738198953601224309907011688616145941300882999813726160029291015927310554770697212343475100937661831648759732752234948792912540573687144118919622515320140728567700397397462206169728485408434981316273126459755408842056294531348186632386505315273468537938230365080306435526314629454496271288497271511873402389345108026183610929772918798666277872014152306157032638574003141314423528547098647003417937468779683656150565735265645108849287965935728638952143985929357962970871825101030322785022269725965789007028687960727168151144232191504567590728941760505259395136339012137483517618419757467511958459285026858932175021598806035457414430763357164699970100774868032187816610035723967508772869711376971755519462590985755161571459285740150655671419793656559383511035812120505295342151351129815626740390205178882810920135677219066186425416672729092818323493283993792167556787808406724850607489062220777863997366728231185641361136665771404293500373034400276968755116881008436202879332944624721245544032382829804383057585379120882526083712028652298206982367999215396489773950113798315842518107496770468464195831901626353400919338381938195664038921841862139814810367359860193691507887692637080514614123592450413090453760588931415921045352977715929049084429204713784354122312407810455708729551329438874135595777607400271644004496669024236706451213888366205621767754695792824095624076642886460066108858059271704328726604868602435064516424522274610421149230720029956607010119820836996544226341051959218786897174530944400132092297795977089223939582587774059102035526350144058392147509305887093128897809182218687822982096832502031841568943272649995244947668307431063324722676142129521896168566991457196374520689957304499239752060438057519566581081313855691142050775906811716156160541668842325519501281184206007318083601512057355223194355370444957331597572119817709835617766791579548672408538456114608013335318077466709114009617272483401335172274561055161539837983838518531830462486253725226642727854266178561969006469615368859195681874518933378639991111996557854798334082900750016412583545934651761740737686561371492120492745788180214713801842623252740184239490727550464714626210932338801963210524351530601819914659379667161749437909565310130308220822045333653874027951717637795907145978074420742925279777019453483270135512251237012571953043263340606265623081094371040017885684558224440745597120184574851808472792503503428419564316223967096430494811768965378315524419068614304537253984687246884106310119601552941106539582823412956436311236331442039379265495925988158004383326991518566491077437897366752571108904469191512231484752729155332841829282217699458186313543299828672259912289002165043245159614141154405886360772372864250679881497915202961821302203898659636414990400161803087584297759616086883088854753338100074839179641240124392555132250107305271576076189249405251732252909091307522968797492782465548711874521501720028585492940391671532572505655888039244137545350719760539855235036340824368636645557929355762309588876725087405584819087784210466638428465479007185293951051661429200490601713975301012666184954297031622766712056944825733476665183217895099226008416022856098985761386507610075660068044539345111542711816631556034625884362768742451669584339453052798546191045822933391464513605996883098073614049528060572529451804985257821447706526469453742424287166775673821985127004191804993716425117764286600909441202431831452401851653838599286854899026418513217635972984595963985310721453392505222298216385409700153574715662253020585929982889446291902883810419579150795322658737065326735916837174505026990903264819916493987284429663169330500641277510781800975439454249396523816708227974763756641088127735925865806578648432659286174965306747696681022793293276819491699741067806357257694145901302064672151469155127907252651994433675207131729568642890794509385926022541629536518880713353259446760774976603219589970854521161677640307773090041461276767164823800515719598150926679832415773074763190315962913099297977712712656913173699104353483488127454354872829055653215445967202316574540898998355079628821395969949092829540011573028271284040990060778650290914835135190191743783568338430588040244503770861280623104773677925184310003059240206476957346861203626966041930155653627550794704175767578435337701579561781157933674634801471486164672597632346751998060173085218543683551650573128573714643651714650252014966071623133094797019058939410980982128056944523207760100439671608555460926544578970690541004123395178690945645601629921676549123634515812030663962286228359552551262667646278411582738271127723487690504655663733974474091881415722729101936040195679891904655452784325526418902469099606099854210616537299367290481903443159886781199854146174335582324252834519101733276046076596494215812991416950404670253935313850774669943451483532535843069445848284860602059253089158380216642293583151965041025570243398438402401528273542437762581721497290377151738061260744278234472970725622190545734473479122782714202578798895322617134927020058334447186920053968374548835713035510793023237425851245470830494573224543840869879874654733841960522130126413175827424192150874421896526945529240512322944703811855962906638347369704531526943750314533809253479121728730340358132804420010007126353140636866741938373775728482984208894840290528128147443891893257433485725007804704539872246998537974557107986982609535188945020215053809693613909404691683827721936716549336775227489810924321806517399113949106488532164952897563475596091277598254709104236801955004702404496556894873912661895369056607807355200749980621917032550163384525627979304525655273012116152429762592864447941837085961397482076604074397621393265495575058969551380141624436591708617540922968859372255454552229600067713892977562807559094012868607301332524800714201359275867025433744152213060214973019533412372281851836678292976708863227337815977405918774577607244064271869467754031723846532416161539742292172216642619228769061277833901772510311003504736662402212292932364304102722559749866297820471931067089722700405873595050718067401003617853374977819008797241565498964036715051373050929775741237010752249376187155364944825184570988366128245015704274229361801545299647094997464173053353399843976222512957563700115327092569783373454539947795862579696775506378933130334244253529662560856154513375154790116023933071441253032750162675402103563092583288530559986510918144110263754295971363493806612774681945403489829886347925739547928705096190704038016966065984598440799031575707855567839090111830775587292525467728552700778288875002116769503091900732794645388471013246321608589835730160314475731187025732768241012099003413728165257938888821844085643417463854268493229044902875100641845906814656899243240301615517262486555428379119857902859145581500449886169060031672126030969832861782480525162645918821077634546719912263163381887927704523561531001015130472060190782016623424500836242133835301817948176386913914099837248218166037018573114687160790978029610460801700433615109070612990457956167857758193486713757829231744288488565263204496723241358490930657628944467867645737753840922850928433117211473466906311643653078263561123407672851740839542105272261920518896413488370899133473111003530106501644859683139673889191648558701328080531658823930862826204790616871373937541728594919851072512916221201993845346246732960218788547761529236306527389371371069805458668950371662078054466152945904374800001240023609922411961730076916516756550005134364723101566762333403864853358289960351345989228877142416719913424516895156699554815631293407546896809001153751770212562845944992705842465928425398996278379346209194064582945889903511271428516828609095596169252174753506549842931346080144738886896184790137261906602533407946428023532903279127790523539578416162443876860294650294871033675027744498768459079331236561188558497632351882005960200694618329484351501944257685094654441153184770535889966333351661740575202024911389255726283805315465272158987551072181619922441485193248585632191573180033402589574805616708411407709421482987551466580115171619245912331962553153870244194596681537168386949480694718279192857321507190084745144511595241431458317690996917904911175677975883847409198540597956655480299713493123464404151270916021675186866388536950107710075963632543938275885985316951344516942837873915938589587072763520438006179605901735263660125702667974047337105544855317800423330482705603432718706939451570022737024943162618619727317450000631186399393267768495648474003750613889249425507815564217187072139689685799873942495460169068428298186994496792898907302386315636202996748915649181039137495012312047101101927580216539240932577632567939404433564836702003477430553340856821070208585211636577570107302508202328663289752458915886779095308879163367610979569042939415530321536851760422757200336646140044510572083941236741242867122227427597136011927762934550227304919273615916125487625600982276412640758121981757739940402445573142963993417213261269943008647644739696363517331931979006563555717083067089595397819552426718543271643146430556440773485481454514294114044606717644196655643687216006361958775450838222486414912388663487758631344774985914304835802861896581533625099469895567518171268798324831685484812362673570343249291223910374203315188103699563947521310750458216758011918723269150484921448041345371889367035492044595544480297293797427922275363708787450193956659759604357043221826087812307843618554608972390791267854312883588522848891940104094958150770515055717987135096513760810507488447945070840432786181420487308428812743010624825333008938156951213075984609830223469910504597855086317328870411880669261743378436226363176931308491519196758883791368682378098108367483442451097306779765460435748160703032567450770217362941666322997527047898521766117473200728792383489980603974904117439697365854487169175709118962011954468134018139050712416649882845444955103539452839518334814590547026722086114697627488112543488033149324403353184964965555237517152524487403616489269909120031039549371723436380410486688658883326228345323880465007657829693688323270473351410754392666647859602953213746602948354767807207074485459284942956117694821409101770648175572085930347219971594810108516033811261546680671468725900170971494138068870291680000238124347741148180527930513799983785524053860905409572249116397394127562728367239979849460678922380577307264638999860424714704864605100170498445743673693159403674952055191751477125668615185522448408821758648819154020517248348513668792702391315477426248538689543360466440951475795142373955878488688012911273532428428858675663776024107810153041445627834114766372495873070622567911558018217241150089736411154395589939782459737035313035192143149367234017176854252669844521876899997399123800635936762100092707587851968781635224266496644037434262290596932243765807152053891034624583787140640459787622848612659410605657724285669898822554570365873340147828375256352796942044542233547333956389184402616297556424638078741842689472844359573043069438765218517891776106787378068675698403825293363026553344579498562476953897608966071259235903160183456782205434263400053984869759992401313062680103740236254103394847301073622403112213072686722642791593958025473176971943982197420610762681593463581246496772952050442027824344733732459034953843562554344715729027719157123233821001219958411548284721598143996360798456463803654789601180572777012027461567312438730362016847331084112446980653068733173050399173988429336868167945097913124216576332820657063670514532154292514354650697805959567707453458983050807025343771979439590716545926105960359137228763974913689147854530379279272378604832633896485236186267665798059912342609735346109040151548321602239382599716346010163736084253382973638735588009938057580402329561257215077134924524047636068922087703483411769992978236202763496528428582276883114211948632369052677707673569742013454959442812614699107362138566737604115742592296054048024082314598737189096485247295318543945178398157516162617547623765059987647385823760179488912336792254021337506910698628224393392406125367151365420262769480379220237791853543786914763906165022727773494786057162421254388964851374181126751843578892832984453958350809700176130409638521120234113057121423765038728867826858637938183890702165720045701399020382086972744517425300374075744849815539563449472192511637164193070266916286485121720539672985998126027390056461830975247209507222956530901289096097202727095891831469311181880574927135349004985184871427510201268304979014197013588496449487125101075371933519824341721466229084738227655811715886895452286434735551112140739575282708440103077435219046376641089749363922514806120170634128236770975999290434906192188559982250198798704779157104093598279769367760756850960144247160204553506713383873758755199545936802582891283421831841998544414561921342709395958940000327731026032953435070037371351975832612598305648687833078633844183903119670591286974413340947101388603644776802448614079357404964045128818255220775179732805391814254129670033751799693885718241234409162414019599850607107239083491076137233171899078831543738625595333904108980384203203948653444066653591626906394937535379643782702646667090031601059648567829706303878754957246913559410184220782134841897855485783139253127198180065570342686709160503640321154857355620230154947608539663980914538030984641110325713106430620504521869980543197950490380617340101405611968598919961457959819541543587677894929883177957451948268659455304973104822390901547378723835592902276868401804209366574218325220373771844727195505143154201779468257309419960282892356008811669453753990849077378898867285571558207645767262609603494078075546203664177771635605117830608061932494338228000316589238669907913396445604769648890528963023594157666668858183114596100173291958723322289467567351059849003675509097072949102047358219472674512360676060258536301965948060056358826991383528116185239489069603183843183371783299777904023940608044241952887715772648247253457958702042096844992256820327217763569198815057237273247556011107011025132066042891308917373558195622412625029465194463823028517113632872074939781057960710090769772903611111084119024888384926541927242945657291002657437572437328304572674505428385878189955151480942581980326995739321592077369939072822663417323297891384007502638990296820874057623913116758275856697660016554303972044753371048222121993699660543424763237583330674635455598027614930895950626650396980003387718973521234086957540526776714935822903897368235676254142884735327636723813375808227760074943224312100750673658758872441181586324951267498848396549426668051347214612367267149129755285180685564643591313899113926168837133280190374078609076241781383656518505356700758559395459250220126842237455949016663685221846314247363831521085321301706802109734288439823017970516846839509200054051302553322098982704076888534589816650552455708140754058444387082005527742465848676530410050991117973013474344811807619014888955871962047340929900977159050716896427543904125288415347032336954464475475206301858458203634862192457058666841603312036650596466315742023917155698169475155554692801326679943445944444878326832982080882081182479181324499507826291623920312304182062145311101454409398963476704170993365063060171837750336749350988450346013841422550237511779477861845009688930188263645485315698323713644507286267643086390149133340962123617283241826968878687239545054973210738707507824777568845337658773086218502185679732823796764991428672552347846137183306938751233012959685152746363174633755526583615278779663713751455164777745577273727755999538114074192065928177357218305006238890713365711154808767205518268551436505472580732941711998718728003111815393652360973986427860907305206030982597702803514297896287818104273990779836867621494900432411160471053674769080817643835876130800960519866790729932282229432682819706087881252125594216373875810098807353552561126371043621583979834627668130147297327306175396685949237360106542893171834338966318082509482195548519440603867022067968936210260725744856882123938885084527190131938869267030651800599741399509943498033007637764732917301932519843439819235658199029190369005575364303436647162698044768969073678557095473134910158653678024524308829844737395704106270188075440018922069976227648990957300840055799980944719714534477219333001859275975738740532591277970282615883251843080551515869409182919136235983554863956379433383007026230299717067625720152810358254740030269922331778533545409601710670625010347842111593043008741600030940317587816116775622405858695084902942179027350312430997497950703993483843813431560738818223028440558844777892801200028112062169315092289512483867909846142895278801958430579355570074514305085812740918403127701872601472712306460652308659885497905848918951590645333775952206300328106348520577943336267144763941489007664607178350130408512833262832039080978597353711662626571191543833780182936282947245266720305210452472103507830921132738101889494627184052746113787671824146861575123003786221439291663405671483967382767155271646257541729695124949155334768173730626029601115142268284365438744458789690778682318971125361588461721407684780965089111940692933165683227075810751699940081653337655358820419158252494307688435740689438655950497237334309706598288613135298631247303144117415927588815061494051894187818601289161032563043451704640349192606633325934532332495484093493554959612534815768525711475499032408295523758762622378540198675803445019675783034139280364954618353264108811009713199153683253439552239331551381832300070789753176848495305529953270245750636153224409167805929698972565476658054916147220239969206217956207451600868792182825298498746581308436716491410683636563628876695050150253059277615888090164665357711188457028102497042068997285478950334853625912902947158369509512661286056923517577669665095679536855255864317717000847441567975993944708168797495037690939542373356661149411399612691704138817115648451255868613388704985084530158234311000145940560578484826667528943914758333738227096804695678651303877063218513936238778227127233917776623744487443968729947022962439423449819475825124181810327359244798135538894704403313276487032531844515538553315726184252170941733059264586931624028433683387818993863433882020089095026892400298788624427159066655664384725188201282817268296743244948011380073502490168752700388946571032972121988983007594391809063807548561084151371365478400846356541238584575302000838150051159988156522661648428338722557679437361165856567048063481110500328437706329096108520181352668378554488472097208103853177010925300567430996714218823418108129260910063009842403961849255573319977735147234781721067695073268967536427600487569333625639089247354186335930987530792433351846161474340734358090841223856736544074585123646282678815191106835678639195260956036681380276995102613210445155713159674063308083323820513768495458186111598376748679910552227606361596124649019077727680493427605752436716787693518261083929764327965547960683944322750798540361688788061966377900781405385647340492568386114675976402212635087813940978813752212312770917122959442109287681826062342781687871435932417403238340246877011049188626900994064098955914290777409155720440933475659210184543032238078239212037119914442835490408243399087467752107923611892934464361090907662870359251786419411314083484075870725918125526141316507505099558132722889336515055734390726910296173491946442075115433031587538159872719037981661588590866835368954836043462504689377539773276441552276190064514245931048110177707476976299596755705353425999795482174169650588516081158938319539935083505129828773493657812469830801621224688325643017386235298145414151511676901569830637230081693113632111539250865571568808263119798941944788966652116451853170158503658294158610827078636336440525497545607861231193976223020055751044466081633775811564240878878920350590869802345879496498816122029204800836984174871481047014801040137836505777023396379194515744023336870969975290152876031480394614250060235175581775108378055206726260770583522500909001790463849764360211719169381034579573700930105265032570421768504156592787007708738652049695180645858752139328577933424578658769144762368062073494657937237661077389178898073910890413636022237364242998814480412751510985630622796263691383580875969273248927490088726973140851067272752520039369265704480374988411848282880005526954935740412130971753618020018314200725938504438266201537458511897389112685353904278064401488312178199813149579794931219015970279629668379026427389696119063723023871904611684394435577442178795277322300836120052816646362220853783365660419199354108879223583442911776088504696227042092864465649122332500695874679628631804933271255679518890016634327408251960694025698876203942303322195090016482638396466287305842666392491832910364898220085235892980959236217001624996089754714980628335766995678176174274536123840772116239204740356035267873746349840290964375018929490694271064455361952756719286714595088225988967398325887156321183587973087318450489361882497844041064416063689897528476475112898200667720660057204089782257267835885212780118819140459341159223920564142268581192947549553590965712992254892991490471059295229486984898826362965063728155089864462028443747878296785359980490783391029570158770164872668353993986847069448802845743806306018275779114616668786754204839108936339881043076188593450631803414096181403412131984333589443389696449248200740164703533897104761444036847201658885324354109939503149677986878792158942036054402103660206074386800677402425377651320975848642798822694933315110600678227338818273362556194301071640959917142380328312282953759985630302735960297987236595202661886765844203848419327094899521923397310483393519023824676293987355319207031140890861699617718386017272109238487173762098497521065609674531161237850727412726950641083765734229979692204677249400323934922572040662469976433544247957705065737769115189852663621526740284258870717977931735112117311934874140790557606187885909921366145599443917171878773591572351696102029806465609724542046746166234122651968232885412940485683669190987823293847903191030819393139290439197631131843362420460341779308830595962468568179945984590724509569486957661818755909633929801612164424809779064103827839373069192168156524068872994902248324198037308525555321486247943811238505895101596031775054433483727033171739186057744148638920176684777665465936149550003345815444621051976683006510868373156390891164489444489983765870909254055923153855857727724151083913089941401330072912746892787429188809234440959069089189908095241778992150347346000726937565955943080759875952523751093418619476409193333290422357252533950784199874018658844370369415868859990542132374851107883627133671016203979889109900179116982240622297076924430338656455663243248743111055658569166318303419394459121421851088051431169301445034094863759492667431147943131287458364560212034257798971985236154918840712998755499971059144986027371277753800345514969962065002186026259323314614124690578362088121882966986298938003872207429816636348827358265813366923299995691102445285745260271233479815042446983807201842271963753433113688501690142246294041277243447611538389928239741341088979835345998495111038121269492584494677524113519892649492097836605969743524548472493379733825734867439578158035657862489355587975465247667533498416026008188637863528887636764893907782586922115075273633595351132510013817377483933939677395236619807348164896359084114682235702506544742694651545598156383854377999516321577691881940634381374467293283125896920154642028326954884992408336479869472837859684537336748676970941862589611541709581682940157513986969167536249653453150145263836250080192525366434043280752007327411658187627462137522560378650844918172886281770705110212042272480785344999273550415593130413354174977093610760042112392850618077309552451797966310941640291961599377100523204431650922577302053734047820097528083578129498307131282570996457428751995270493518433230269669072840445947825995281577902098860378781194384719070852085293381802910632030546158986602608712445298809891435271466379268522279688979284934889042107450595772890021690036487294025102013581306907399222963933127875154635278338192699459688487446619485391789425028834988353067832642085634654476200346138268312299400837559572090091309846920318241597338296045370113145699365795620479665472472614913959462844794161856586166686078658321384760628575245238655818233506259642846012761400394723026744737621917284256526484478955872751138743525378466182696245704620232038575040666409515011899105264172375698492712004862103630221542246161108342372249402097973295800885129010380902174333753320294455456479654059504442726122052012210068574095941794550621559805988870996408297624108942308913802557244159386495686655979837339281966696257388728195232846952384709911367389732516211588091543212009224341620405816169109402260465680711991937353821620976877923259840754024362399566042286535463897318935454790987586733179725154684386033923046749425370302068196116269750772238487640409233077998263259833009007585980270994750709990319403055453757791735916198190524812698582496518355539006352666966201845330207372333424574811923746060365913815026103837356816320922511737633838148832589157516191199237215128992375722964055137965308958340152130255321795259607111360554444149924552323040038743720125551639203308886995644804157229149353362875616829724905085380441401128478144506004273327186879042286449097233896720917872816469597506915209588591332568275360207695716223681920550837864624687341221403211113684928932460800565617341215570872907061478894100246698910464972100227649158026781502131221238506659848979321464391945610220407007930140950693238205678483736417023505735571902445659345340986838634584686808359439971708081707373753682350707498653315704181358814589919615175693451703885347815667124770453668212242777531975141848263430894778218140806890858678122341033485497310353514880782304945157379448792447579471948844828038629247299192269191088846538755290757234865904639776200942988488245104469786892027884986854216534907416517241761643342955637839632979827717123593812091743070143270292660524966126522433837261723484704855263427507640375490787187511247935376458566414334877479005702371766158838159271994233817767037315461904976831271327145298809092296062341582404473262412139223533038093271304362504365943079743757432073628361838739664194136817215199080107203933073798700972784460836865039399277223179452274400810305706386022139087444351159166281943378033406934974028736966140037024852996355351756626719799775659569142842478219990744654244382996148041874298151237585785486903516897408680307304182567480093988904112613416260765144440732889199824073812728523640492994843323142683807854798705438557194755215688162952693888747563219336707107917750667190694682464154832510764083086701911039749985081380899321594443741712998608638358852087101153458392197554305871017174695845901761887178467332930560110422435126371585680872077877537404492434474696346375733086015505494298878570342492730911752309543622148790515962396030884526784364602100700251435620647246725303346721022293713894297008695576930687925433208271457108471045932912356985181932958911141905217559610282784095380602250148760193723678435260311129338945507366758432023189486294989128160680958949177021828329914059913557081896956645998836520563914354627643265813692388458200164220367056918777383240058942693890554302644487720146645894347384841808548366732064253360189158474945810696893440702854391894166741575505754084310632853331128381365394974495326628603171003506570287686418320841847471812407585019925704555974404116711804549411158929210239285595719900328738670523945447022492611500658733205153612527359842452499831451937283002437250364690363271286585691870829781414139934541247944619276702182137950703511783421479216495498568885208613362020300361324005641304476907622314046833721222588253719847561275021021002394220324616936065250123049689553333462550213259486019548993317539984846638229445843683121518529066157744724707931955423429214941462540989042101497677916207755342686141802113627326944021701165714621334847767376331028483899086110419728047377329853658049330512892667905715445337905114449082078393769845558424178649768831365248853699254592750973447222779323754399328165368175908613636067443364076489232956622668687994489849350884445702702555924758070550128022694353764822409663951757301672896153861897653613748274268650909876776108385742452593937020986761387468404653636822027920173282104291869366636676644673995765659798669454365963090639670382160202748258739642645016625709751413544671306012829630317729508524212705699302423544592534712401637009363505607836802691229578418299084032398302528803301110627748606610721871033625071594317744582928504194414393840119997647484841323511313221474599320530514661653674311246407786651029895531162866873551769461791637353390658193809235942129943265093488122379928988703229057839267671218176000276207379847344096947891596482838674057528639449720637686710801536231821510377844252711817011194485597988687637301441961365613834590458043117209679537325339158331319275435240176611053945298160677711065246463836327272413782024599590005959953043047945670634917224575089842226140903635927241758884647625707795445590582285616105948153838928656962034617049309858075518083119788029570817903718886036055534176281978120981315467664452146933219939203706955458952981526842370373332314757835309895779871555408074575093327722335098767488545730018903778762685230102686523636709580220491522958045884299986172113431664358781944553330202274907989839703937085319070802834984097705304220067767040284441924256953800223211429376382081122242608368154863489689277835760717493148269441545439956093241902147737654414718734004432007413088022238323992377481583218624157132651519199800074303902002048529824791563440737633221351079106615964324265153304165401953030805681512176426369990102444591907505605685220864969759264513901191476657476530742397265365801454970175691750898088402573962336227393944379466266768833338902370742858267914240685477790790833724306657167924401393938105057828890747953281627603373077555004447848219813981300530499194872638845180646867712860315738484799259085526709923067166661166071849107216014386321106283851142065449739184328893548609404261755944299955502727052287356791316899635330101568184246196617795959265060249442156237114059802129413640266530630703275965720226073004646648962459486234073087404587532323185594214555262112986069026058505686931020500450869065407134264358062954334903802854392485561503090817704702962570169316150645071419900744061169071819842682151369665985039194970186703889224877730145917050395171231361228679065005735406328473368970145052924585878714518363018245955202457825653290736478177878327184576005779607643559791612537651457249673201433731749422387575833218998932629878664982754037802548609748281935293250748868207128048294432562577073810711332992192519047128198068826705261824070095176314575388710663980053668828997065626996995916699557475823405542325405007550218114355981988967537087067710749130889017099606051052062707257744449870288586872255464397876770442235831616624847852589720779279674234905903381810081150676458094840545767387857249007139488652354769638742259787546421413719615342955810472448770468087988036963622272117923901747290196104088722983340027687092163296596035975399036747135750364325211270292428461129966846032749923187325088913038057756768267589871406227389758161516546884602069363540097431170074926654149619876530106670542979076382809573456974021353739938399948979648872967981672413428305054135515197002847706109827810124790087320583383871922362020165066762588090433687907259995412412225820408832054410962194413168522518854465283359028312279602604072797082689454809594946526319846849548237578965359186043510349909160751309046712732234837865720849861465122238688190894871734130261512536149762264517187040250995362210560559649547402304545104087509326930661192991395643488679738100670144414120301391263673197031043298399936388702343661048155168469755343999380999814885872214000903454679510422794053022059425820195626021985196538190322372208183239277968365457305830178662692441309896712228993968728488076030066619646320653486126210662581295100380350345748578449471726098238549682484818940788395004386366488053129702376132192516465458288433098779184111611461010935467744903134667884610116421543613226186331919500099224372189080387918694008748270964643793125861338711199251427997435517196911074063440419508427574369889273869375176992503426757775458780751058840104741640345724927878111619731028775084158856530196382384856618125848118552861150111209282143127105322957891878055064644649572399688788433330131121522918255980830392065193777052052615797807541381371058150656118238389145470842774567987488780325229787239630298664251498929611216574476244028015586376359755946954648837216873707971877966194032838117233536133231816717556718400152708646877330319038873414530994140136137103888443229427772524914181824336827586702357191798686417072926075142856301585338427158798802970167130476403390059354094981063498913320980489331549320249332620344961915170209967983179791118061011521007950090818248637972172826656574617349915690796034133521438780966343650930639387381466603769324882887260317883019052953651176129132720066555964484631944845458343367873818588690472527790200863534058122543105641309303461374043941971455202024795789038381070182708602368046772370096881005254805755763414638384344461003672189558353472375605803706898827442939969434549966658004352443483912976553499239242052302931211200149768786660574232379090414899250053874171710900265912545000957277868756651954349648118071548418074941221341947048104878422006780977999144129847044409465947942751616630181431824986897819592336136642338150399192592313843803540810975781406774744251441767768224128689661073372394054159049118042598668612942868661839801478682605810250043558109848489148120423436139874062315225457055756571434864573201248469339910934443132538151951920882391400736846859877475282495570783680600261529281973470561603610325880345108448194518356349143695252302130086213927959856587491538138285169947578616389848505068605275851586073730983933221090305424356408332315420430251117436999603538912278332559836199964741935414637860183975399882039831414288564027948534085045753163332926364341049352272320191022559023714786375181927624501607597152248007825576271987711964819294376488026989368346946925296196967466498492530639422673707632385410147852715109661366359991731346541014421623987773217659934424062550068508472717738865045057828718221278056583375806429546896836074818521902641316159436572229341147909338307061909738568713366250646364353293435194444698051886257976236884730491656792659624622673144512655354307998786715381523391724052422111422254614389537037740551671012016678590739079428522173423096219325263338849353088786358396993762351842176308818816930484970754370147336848654748610058241527109019629288022125311579171571548729048062651155876427686203564367581952117524065546727112473717307615647158210986646053631706223168243835612136526053992606896805607349791217942526834480208762302163068726633220654406868742766840497185271163816122526284266321909159070846289175557215870192067755720822615235924543576613151201934029552108557721647125691119914501087357826503554107033782630628967722403716099559036273650918434294542689977787738210853742543711925340520322435060783206383196190807164281910218419283923271934528143601804941362817719455695121379966403183640964439195008659706173228425355329549597573545132744807115608641556257343531525553901291724409019690861275057790527189985987294037247550437136968687635485889364208160287660632751793775123084566643631721828828852841614270324315552198746536876827330317555537214194069471941116618756351541049347250564092913066380680754895364859575143964725070510505444365681606405223213422921464561892981265885370849089569930888529216552671411692611261071344673694586102362193276803742257219470078896343058377993355182017455929051804000681691340632614351424153866615565163094289505305372244428511273130329039000129629002428383311252559104677802652168566616171225436061748525580147906557535750494405003216003823351855180671680172860319718671246858138913979507826999414084634154974557910738895716007995245609778976473777157300809975661718298154340927569234438045402322394353903609959101016217646320507648475103196642015449568712743611474284203643165943241761365765791567217307470247428135202961735504249482176121302351931051255378387903438226742543206530843758741212535793789280510490444346221894437953486341218358671393537492522905259196204020260331709185394637388137687698250900918276585052556091054549481068859813070607129466189997736462705718315099174695476525281690224549970197097650013400055072335027167628263121413348158605343318524716882352212032390345708869658146516685512596832535305095949741126511531036767421564032893158294929032692921004278050169878215286966516545412361272467653349793749194417550430837283972472471362124352842054441512395159913324635180647494158956849997619409570767384901606870645673464520507086294267724391893676945896479412560159180911521051242573704351531803434212212509468895661435763765442503159006128166175053279270605577392625932068225487868985040282372510611151433434858774759394608041339362446703449549195791267027664308070973767013584904583564909072193174763234718611651996269897174392203008635228406699597228789093304532173368778814259123640489303396306994028606554258698060637418074055741875039189941515621560858797132593489430433146241228658860356376306681219613474689017855466439036008032883875669706549514297047018260524243414973967547613524111926709110017293541267447117890459711674764204774305731986759565247805666050085847978211852195312988210698675618131551287464573977542631203508806184861027707812895051978479717081322904900263218283155776332249141831303416613354778191186633003199455351398417937069637947484129532275990786536810206529791192595848681008420247825470895371962707144743070617424075040652945619118796592092015439475056964286198678870096520090885298372654161775522821104421261649314027619718962815197732194489947591672481136943661490400877553931221680956129884700513571881939378866549883358250658766361851509261812211678578246878203411256826630837450636661594057036118048242285165850568294800798730911701032773296869223726016072894132755016740281753999220034491454076477581332811945801502181942063358538113969934487966825499257611872164977288680310638342572682534638451677094471990581037632623612665334022533535092333538157473646802956855662818708118145610979961952619500136642063098922243661805462625999813710347551352960050864113017879508307395641112874482064122606099489087906640193444490180204003717994339412864424747529419621055403471240506376296764029548132833910347771631688257815887376625838087575984412447963998498673406445529913340251509455818366512765783476454700752451654690521109540838577800310840311882030082322735966715470703212725117312464250578814815035950119248057611238318127620425366429207112753478244054480311016770177079820431524841049838485493589778089086432159850097763456185233395173624810474588384263608295302179880728844158996762882249341324015712973342258238515678357959458023757143773535756868587816315903343438769391198530093150043011125018003299569854777074815387444962519109754659654146827208216558358465614821071469068898456514493387970677709972918719417556855193704884142434462937240977855899617072529077968389436312706304923311678821302121498503806220018386283325833793722884756362028627370094691482475664724280351200100363887885837559297924505242528860978905301048719081952508448420788328764311146450681304277749740467568966005293847089489303133553739395798229918073380676632093683615765134478743129460816383489511837313597751932825600556738103916217778540196962735479310336742734979816071414170625465251686524797809063029992893453278560758671215942361517102447260961244920481045032920733941420946074779197841572036815047055177262568960730724001906947001768280233344172213053799023985917545135640176132592015850307660909319867753283665830671538210657599635824141498280248363542298858597844036529908960031328634152985541023866025754113889925553566081056624652773797996979916428599206050265327613830302775686474648192776969928190119897245283791586650336178967193354862325480765340829041224337919915051389168366150333735338154743137748376978655262825504428957677378349922007359560604125963833770935798615235815435233607632661463105206596553147301629798679164645633734216200235604398809335395654492327366826966392217905613735919346404787929631794593271918118522323709996030694618542462792203955180380000632220073090151793845145255697930765888921106150861811643572600646687248732139288357667515937138200462159913582012636303462025964543407256606599661537229153808750512883453219438772181616240710913080816322543270039391921227007023897114802912535298016527087894639820883895884196164901107886082045826718793803150366500947916217755911504362575560311038013267483601119325578054426435416946421490291271409261432083969355986128231857621279038781449782294760783235214787333058833430404732213401588990641206836242560536048870592571907054927656610319502649760194673505603276188648990906621913962277848342221815577279205422444192027122023757752254184784968756166568499923452530271905647274180567664531801961673360792817908955567659485932226648245061845979306995523906430977265259685914852717231758189459836423284844794351069392735627966201629642603424157480984766306286918537404544823155019125278594187813732942449256849647018566637284305270905201915461380287069773452941405592114819839446166336161282294892251255165094302873210707365758683950414868194574348867792549780450257358973236349156200282165099245444347460264843163129073884574129112657602708270014288609262005601967674566428493957448407556781093828524629466865161589504764249243573164440834236179771096552226239890889275610623612529554560982677174052829980189381748610102625909338818081288544260542054115867915613708436635371537221216373171353060510716085395231727182720740443428204479389094609086432610498513278739974446576825939819433449542283078790956495409469162261268608289516456252155955881774398687972965798447717778231289913571968246979089069976633181006179861927863752804715423108631353871206046110195525228815502367493918822471614001633935315684784982651397647683257253855038816168160858643618607946483267038349128777388214368233469858099670742373136748058861757777788906126987096959836420476844639454123628246510334886590982176672933801848790115191882943266766237522340162856312144619168425537332368540747978037517746924129827278654221807836677204208223483549054031988096047395525095751476473729702800374270675166785608321774488362930121195000580095464275933196632433238135890236202000249803360901503539473200188291846098286449161056531402772239132053236147325195885721292562203837432777683118108321082206585639308832294041285628815714884786804288035993552328671647103666641321219791013938836318021359328818634595832217287339047595300036016165481415041326234079882004431001049160580299149563142235916433367086445443383622086174039399721393762797010777619180670895474333231490289250712908770927426514399561730003490155676491086643367973867119326270622600101299432705079414251063708146001709745177256830236785196591692174721223361146422892783086043182034729851315278385671857053638976655007731727205352422848105857805846924245918514601974188055517772351115923315840602122469103315700015190474664894381180427412107309898549907856130985024917111286964417670462769610910641196921037784416193919025366167445250792468740351599583442871116986262346933275072739215768959538245463766553698501082475544459363900760868009489236602212039209832433309718194345409579760368353040855750739592976874234833974986014699892610897271203839217081010003763425021695879019958639249597751461305121749456266365508601674365150649101112944812240595885265120552128292138451257052737108926372591705129507369138413161037546971553347738865158866867736891450441453542872703587771777014026350855309393821982872514730407396008144429170735684335793837972029967081155291178741320796365833770165233121857151901385219920028688658631308839208788606334021337530949544191175917320475794678871815956584161071579663305976154206243613928253881670027712342399626999978235162289082293759894637137405744451524696223346671878872536396891653710215954313733532414106388346681416387384062317897093188305565392149971592231035958704221603934670466085710601583876447308118682644792674921460920189539131232270714705433474100520299107118979906446100031339205517496586322025923195796060205148492764688889152966780947847275243855924860387633666452246441003148687522622532913540887707345176817773937702500491676627255478359745322918225225220566056621785455466716508573938967658866327444874730406754622908951758542657024014280540963492402016314649215945420325577788441028542152023658645684982613223939131211464633043273926367181441273882245591071464133837802244192808744679596046626078483257930637301166642430269926068708974793321649540526403504536512319090402284277613445342909205989797756660800199456360971116415079688163939498079355318474465246092161443229135967698774203657306551158208282627057544777525777979690327443273800309052153164941120611587928957715033196806917036887572566834472439183622993227568176124735532566438951933702825366128577498686636556216296992964486944260576124341470722692198141414516934038155073350902696822633495666291216965124804869151019117167877927748429646394434099097847459425560740091101401031463338520540470528209124856587497262567495439727925368125165091144003278177397171066042581227779171189088632056173668429406944686253336468500801051285046814924660032656964031377036842559165755696281399196433956136231051418555673381025249808681297316204461120649049361628373982769035998045024303878139727893392674097047204070876800208997553876460991087979855343722060898234794573590515721140071441384475307881824193334890223668131681532880719250361987776246512006257209842303982085864683087574319294101631387475305704422545164261489730328311027967829997680902160518687597647223023358260206896345061964317844673701778582065972910510800046311783287070822403636242394012382019363836969382901828085729361506846637846157341826804272423084548212872772795642982220682119796373958314935646852486036317487408763883987447131274031842853622586043601378158076788991445256413589312606913774726604738506484754402179207826580968400809612126457147863715151826775482731551742788973906471969936255813866784913514775590429630143215632257390567947193636173005350027510835151887915787975749589200543849241793288667277764374346997001309302730634820250414766955473442169254080027547656048478870349943116119465383085904675395402900504929627023000323660131479647126886747469107470638445920054093987631143021670973495104093275919295153217112206647230281077393479383332147374090649134221780994501712208481172282369255095404769456032605480419045276894295989615372532252183386228701146654531529878492872962553475798664321189491737892935500341040988440440994940149618731899048440221910501518135308137537273626375189691246951598018598247696195309275931664292632027127110199319461465267765869768288493457846581242506725245024456825864265156307454642762386002764846291307994159517522856703188253770282780968257513479802313003885371282567188636327734547411720059836652160420922436122027003730612355593333967690968262861636212480407399967922342976723593227650020656299662836109174697526579121512205026853359495118604644699270560857874537192074269120583915486646584797975722825670363506953919208683167763328104703886404607209455903007932316241890508699605674675201012880300756502028440430528330391889359387191924638802080655905352487769476707673560648670910067515698214181402364043725821655413332053345777869691564264578707264720662332381620180441241057490672949431099745965322620906786517338892575418059766249765972309640237905355385072196117629619009726579640900692541510792059087864645567408552289039397160363000644768249407661087955421959901819734604464865344509478031510199853236096164670341298216776235217528664308891618436461717189080284417225677628235468503653948778096403935778167985646061444674184561769898080863556845037401886092100190505995450057454323784950952700061525645048806344140106014682981696063467595390099400060835184681864339418137112359193812653102941146972752097662717955676697878722938562750506437030915282175340532190589881660261230218243988982206438011824845789243183657504471326458216254582719355499451007851315239130521345076386184422461192432092398300697288409162152986694355819053158178539975465907555870155761764972010185493638691312580232135702786701729690930808069127038899373817159218507783390953257458714935281721180704431345011283625672243209582033092870535142142126073964200198216804066111304822486175806474437626074575708481774634427524067955737911432106610738055118896376268559424435293342562869828689607979464426744060902518303496023546177957432908342193137722564218824886799160227545738038963279820953449647565809543951022732489521628637886950705000321477917053603607686722142451296266445733658210237977759590338261692358084901743384291900187118809197302689339990663647071262594911014612622695459214181750701384846720938621022819098134697421137023097951038042716455527106723213736547585147126332646349837667690672965979033456844115987686947805106099969946858216268637882497545334157502666948465211483371401246541382908604537340321222030240743803514633139967499645379058480102693409323168532084434064494212211374125238537830910540503970671911572030783921437212359658086903432662706221925659010374873322654432015585606202545682731149176560030954752563590087084174404270529629065601378616608307661715022368936752782034269228206874109708829871858452805657461780368753729020452590115565222414539867613346920018927497808297126202741293523059829016277584893393338315418508170326806126483812132212176494967557642558059029914317258468038789248607215102351749542125272948054657042110102076069089438384677147085169706597920912783198811268683525875879032085753147927454119790577427897978516428130093665304779228196132255349049769417274942603357057730957199060844036449524331142698414331190839460370696272505310963835091525477392689666135986603841150529292345484571115647826099366775652257786159661708624959599687363601693061310955644792107903546193870020705102820572562710895536317776519853779491411736013107520657659769030464752755352688588098649606793040891567770197423636949451123837264696312810627602121087316002404755863150489790805281968855305362825045720275073196556784446371591462339630880009602866177085374104076825552607692182519382655102339900944558881397036999919613505167339017590338680627033069811546967394022191110197517556197042908235066391603142711832490214974851851943408157476238266662750288941353045786520113617853426366340345698371790460530269952960705282104987603181071451155106441019228164635763484847908123408453763563593497560432182258901110013902702190344429662161185833600073498588440113356066140781491307634528068761131974149100281421598423269692417787735145388791288385674406385588450160807587759772326663992068856586377444693937158453707835963885285007005154551233761079759491152997976149831650214547190525592629436807184118507422819955699522102313195232185380209445542496224628747648870808633249919943224141573484724707114501999760101873672834173996578960870868192741953346956250143766804383143819861987428717904392754800003170693394052696062761259017898545815024689920255986839060713104464801479383192783253004409352535865399071876394122406882490276163673381487157756292762620719969615572118004607773576412858201618077357164293053780636768122780565874940840453752300553923697496859696038483170318433789809866048478936408797855003486561788561395133447052408180366999960390545485054068910692650294272339337606964476440006619193041366336282866640303094389160039915225497212023674558907280390908188608088555556818417176360676170597587146609847286809177900698220802330332343455604519175529518828402997123563399887876725547484244428093673643513056826083884289451229835701976736073784176288397154052135527972604520572798759745379784259668355100940583508699943348153298792855923857907825456286273337067851298322338493012949227504259313831456019639044169572911303047069395157187348020740535951753897008982647982255014708990681728157729279852987528640534936315384039874684374691715112056024738334335438086182506497455952216885939700351941626127553020615776800208956209024735025323753967862867756258973437931673112320470475773998802205880205155916181584744631094619189114513925084399663505892729281334216448710988216883235988439235955200267401496389516529764825123863073752867098802518217786405468726450569883925685778079157907706800457432171875061064861117965015257809663472146701915046552035941451164307844934202532034569592744581280108933071315436120757634574428056526736414391903143499323564892689883675242102442826328355517256470915668798468403207627898009984432915645525050934429986609076916728681563012238684333826675839462089618781346049527101636198449871005516097443461440652013664407866740117293370985374576495275173609342560122032417412897713339482510884830584178645757051040628606151271184658150108807668901625456081000958867578154802884583128351391900266905217681086160900731497578215382052503767905069078637664166109460796129835324324445671656053042675309871630978302672760396200300873708921871754463521557930523242373673388644337383030300279429904698276016290003712673701197720561778364426370735674653174071937332293727560473690975552247841034634445177275802982233949351289094523474479477796979582584916877066875509410906224352935199747773504934533161124987134762936261884297930707282983095025541513406689095747302950897339678013516191025052627246826655384607023344047560512490361585788075463557988863779400997972350375895096276392922852513980558085063152092894572645168556270387384349630575150995876907406620374612505773196282051516001231235632017398381192987778759360576025048254679628833678771522706820181449985407714867344453945804064202980916019393175100647392607185135447534580519976275443803230282307531555277715940302045121355415777503127067602525285104499347287020601621658930101323249282568424781000402636573387641861775536036252679726680311107045797566928635817376937280062805018230286552393853330890522587867352632464334139900617177276437062367855188610172900912224096786622519906232498895151433529503339957420349142346424572417441775374755360030480556507205303070432634178828816460986555785192513339458283952368365422167166595222396079761334461305640939811757785132461396503524346460502618964828787980174013477599985342623575292908263715157889059958480594136806185159342001230650430368565679762919171074341952364719760752745902809583725563643779962647935079265386334404004039257268608654350013413615311347296288371236779805689226668476853916011552767017315037957566300431465710793997864169143702296324497456948551396663336051073199654697680224607181252042760496962367580803947825593340093947705397884919821867994327930365582647829049474410368224719134914758231989577282338375331069794288771041625007219219231038700464096100781518189174940602497514584138268731047205326751877550597009418010883056535190595620985398765944190782050262216817539357204628750890774567691785137060271891883638537515332741153179907695155238920813126937605582374879033918679452697328381330817758396146950142799117558391943281810306698240259341659308228722311256086381435081183095494997846972650149385483297162189383070270082262189378252600912503966827625676926568449302809689523671550926017062501788334364343625626218145451957099319225152240721413436298474217389955231147648646981897779037060384184662093095229587414417268403468553460491537776540280344783672859181702308127712678515573164820043441273966638754360746369248079659474007708829215702822238467536735191634012177592911203663083446883468251140748892234300295819318494617535267495994377243277743010906375459671243989083316268444859921754326910147885587576329426149999913249232779161359016395239376683321794474676498015553902144319969798399966146538080743273433572513104310611938793952489155332611162334151430936678313104584815237147024081119923694082409231881890935265187709573115093305324829848930370448721025580995571203953650943104160886449783671023977383080651747762994676390103555766779960934248904462295992670411957473069709944465105401008545908374561014721236700866022253672587070136440118830293109248142161642315241464029394452607381724234055376261081678232116096184950942087786565857125027824138982083350879941492476188735724603012835247914982483353311749126040318355585135093083828775104394204654475096717916166543371869803045993084257778046388460520392909625866936826743329569727126507788302223696165815004348764748856159611299825564810743235958016003257538102962558582763039673886439001839206013481090399715430807231644709023067164431293853022868242346777819802037813127811708670179041968935553142072212659820167105222740659562604911037081001418122513638897574593911254154319624434891232942882877214108384183461392372397259186200338671760034996970739312473983066922853439337666631067446847081515000216597193328479863193339396476513417929623503142228928336958830583217708789925204956307155866745104957846559170116588321717382241135881688636863979900676737646088802563165357223307746931100412998705741296753305991935841122393559908425071806662968921580688418253377982841524113628821989800857113433451173433064981465457668061925625131596424736325439601339264747676202689252413100481544800117214889761824305612625486645596258656672307009410142094047574974259824904521478479866258318904059911866382927823192650758186239138718894982268611686532257251468019473123555781522349675794445896432409930132533220303265461030824902136204018461567304068956472319790789785557593042882212840261028691100535268056342724367237280416505583372457884709547221772228833061014981110269118513660365654781396021556703928303743133419368571662656218142772470569858382274603096106637539948509279541857103770591091762914400066952630256299330254961455561909735781682240399510104257697790797584099824510734797974942455884160718443156591574437437763926322837175425397952068181966813108177160078640847873236186707029496835193497870634576507665918145883639851174719072012127421157839484032814890218376483331744514626336560891020370140429639484654705148913233277983199930684133647699805920140658643361063650690593110146926942499892054984070082444090387306908018209970941874430600614988389707598950866150465384279800088322473573104268688456539727265947208077385291690845901871736683226959247596816243101709319258856510370440529311163913015125314414723157830298021486631497841395100127811306849827450049264489788798619739644828005452234700579878225481939929967390683268931141682906468281471404153567653965378181839558590430155884073074758141662770495641154912199584482697339994420681909284875055290207323590454270976742296593308574672561160224778775748178555107073967154966143153574774567225049806225639844500675138279441590020172823791293310753015940947394578415662269784657040651702946017940289439737273999198549482269793875919761178548184464241435611384778087711190383046966072801071953887876371884997333647865354255682420030091354709933348935642228730493524732482072045161783754192519126556404099915513013723683239541701875409744249713226022607375673634499986841469036231388229137228066646966456865253043153797137575890290027390596959228924368738432536341556389876085643550373853450406067719499999766870139941612645215171272893573554013911599721580668216436193668432766039811211830541821703199192174683807942880571155807499659574617721509535088870903201157434625169421078225710729950118785598615921823314909741815646335361809508392034483380137127652261434948424273036023886791033050403903767332451726584428632006276231261649644574611862464715874096866587702637528593140904278739131512778906251119822699523315921811500639217709623016256441689076968890080310433356385392910489675143684910577939140915519873102101414237988415652158942380072470500114265218351919556032171811037687849610726621865342702543553775017717235918066130207977478591026478194505712776085456526806168743495220886603153367111339480104111834321477563870883924407319560072537023287634478599109404784219522380020417341718566197461113559007338118087691441071110203218451026778116924808491660575376858602511111522174728703245689519160652875025120297353514436856411109609481356735738792836851249434539283825986219529292867549655908899648441242622560123128721485978164267593773651349779092764548517584164745120053692566616672472939819739613770037219657431318269851894450527148388813756132225643483659587069206629888135044824598034721806922188161953608187150202639570770226011704545541475754307740464413292862540060413008664689122477567844016053859016374159362592789569709090187700253147899696653218280809410486601465645910684172437800943483484196458844967960695958194447942799131952316699893232665074342929773503149663045543888126386047881588274256393879350011030558882243163146469963647919917933070999987695173991702866026172975019433633546769443690499787887084502464462253140458169124421030681758678966253262080416452523491594716439214356355920417228587716450276432642848212544365973791291283859493423748980982918144336423620336472641892073977323480475129866469258970617777858113375063064442419292076268460906648917403551524769199916424299402025587417005330857433263191273563773129954429955780737283597647027700934045658778554218550059782154257110808338536285380892973088523077460955219584673883769816945132212971324483615865346457189669316796779392627398835273476103979327394457403176951980375463064794267951135122153785980621878558144459454048770561338218912892652463785692281316992266842452529050388843977982570745722513425083938660673003514905700289680699039182696721026655037685713012463581996466114446504628934641613820174356106023996906354285022665135183280495850940323065274367637968492190535167530329855564786762769621204497803067866388869667588508556282314137468830442002442458290416812146674730359052035611794786994003723389746776762887027963665672707151742422648713323392849540858765055825197707857481348041136895942256057504200402164832402394354854459757630837792730438882024462350885680767838742213643336197341037378426226880411879259859612894383073723135977478247161758515686281249093896984801996019511049422600969022653322188992402143707935758589148195813951414476862932627750115542819529521369423403106731271991163198537771255788210078925290852710373206739047361344277796543556052892990562244397809624762869236935252248243330887188033634007221433535019396806518655661744890282592617205484874850972099196478920366677603365831235268798933693907188647241702647451852727898391054822176831241810184304904055181357256955265774995505617183061950747249458529333317134608026910236502211618178455074988063666023925354549887016384071748531011684044847882897888537468599470767641302556796579490688040550227919048571068164774637600882994269794755851623155716312069194939157810841272951297348154003384651678391612693448596687577791902801877745884022741930506790053525710616628670193852679427050362511858399236459284134658079135319256867175561235009212520375696864858467977090602496194376253889542888431163420119936791325722460248025081552238037775721984515844378570565089881884690689921466641429059420062398887177154401259683584918595490997115662362852789122022744434418048371977059318884724978459441560611380557582765741922161784697233300161175341626271480520509195000699821389936186730510854805150966274602845807584529175575266638006620945753630869958762343727114550426324619104728286881689444689906023069556993563139503165514812772877547321683257457764012922039310341190718246796766175524564731293821041906718234337046643419840722098745377815812985078794149779726296266950259667473408723907861986955006026797415399325291522521597133059230529828716551536112284810980962832834996019140635825306956071073034194816066532801138515750370663779655417626668547527196160206087586890960237066829878364428038055178781966146486758868086650852639109044710199217177228014043754227220276261600943194881974347638843787260697123352155383718414451636737887944148655387041824751056616147941672265577622657591244899851118440750814580130777456253170329002940301407438630055776112814802078350907172731805528610584392638605932882216109779525086156445871767876407735064265260052191937325516526669058299465117701394164958496665105686046534403655450313737430104416450463574939084878650470841018206896120981231886231061457262574976220086292716988786561063060603633125890991010292885099176679302345117989379644307305271392633209089720932023506149995077928886198828159578670416120009134785398309292478719757416279384033837768260975885908711698133632321366332804390032315106055473521541424487301363213930926467109554124212457991538879068149381207352080004485571863389849375162744326267630370081394169509682667923695708213837205835142864608075000517435869599777274476998291625114198405914864065108042425956454618873139240896115842803145374888646833480960060399852685107105553627178795934642194852780856200346677472945038293430057357871467012114546253579653162524352778374819015891568289801049337371921041349471888055412001072324128259979044827573714191323951637815166777735866451462680175840861796492414315202850488503469459986408786714131726611179186032265169799950393987738531178678750895366876094803215683374683400459229303443941059092940184665770021446483998955278380870562594686584326030905150234554112432605174166322040994195994013798897167918246580051759774644734987068154065483865208540986066593046082091550004507941402211232629262699054397043714346159208066967792805207597575233073722618780316918949332294770410027417013781923205256405222531599220154462380360836567272085031082332845089608611204383232911643042999356338833123008221927734836032642493677440853884166612824794178698555069265401278305496884195833794572593364059800548320141914630157141230151590440319897534257311364886673398617426084880971657765526660038635795586983388518619665204170008855190969149078795957787443511484927803949459144275432443920423479428788395994930338679612295161124097789010584815013825307217424945744383747822744019115425876735673363886006039432688220039159913991944579451891349147684800990991609805819822888297856800752065426376997693741535181048451917289585206408656288843591938004491359250786021338720155184959034491607189336937014540250846242773477625266082229483881277752486384511565940345553903399005017047553589167809724356482188057514739610634069781866205722527171043023760838884271052124693633489322817850145641150341164188103745985512751530640859355981888032569887401251294319281655432289266371401697903710366571265632144084673005579053868286280923972489640969458064444941954265499111821962455888787819491818157889612670721663120760941209484354996481062662216837283666601279492681607369171845864881001968693421099266495146335251713278266560120403441014784344447094029492527999578541628547197179739525354737983423820274653723445768707847812988451850667798990569005281210760024021362745034189238993600603169695436534336128503508184316884605341897262027330178691359465591861573535013771957430166065682859392274264281869238484859819220304036120582884699195205885371168727174962286695246778149327185935458040579892564478737761942550984379221724686825080955221949259206515701832095560530312628628135894640625043906457228596891469916622041248452756900264284891272159296815382455273197002868505229890432985184331665209373773413724383553473495892098875644118513793184489149484264052388878406866008072553178226897550037329816304222703026300132073693092811509167327969772017419849742348800444531060224741600069289656556658091958554003389635551506254882152105989227556411172463397845547067254294947375469675886019422350075826780808572056838023296915201995896274522530745602512701514077473693083754391842915157203215140802725054695758529238906206882885943308698456751543212705615090127001342113023401230593307783802418843298943115067598157160224739936871252485265041290235511624289536995263520458122955341866490746073760944824484519651378040146744866980359240948841323135569840074389649847660319824962900454926018414158249783088336264302643072893092039279771467535932519288236779549573485000638262869528244740855638746578105417193598370504820104619205384427712272931277001981743662481762397085910362699674309732142036070903447104031619386785022675146273891506546162977513518615834255744427599503747894156693863856150485436638921566177719936193259975624958708738011857491729898735448355524233140783422015230371335921754517469555522329751653415240810130241604187445969342823856147069729081829238300725429779932943730434273332631610805175556477018901531384185344863810533910527670026445710876725825728552044071851292468544538813579636525668306989689982182023386942387989382275956076281199829035838754237389789146745538984925181008451924611568622970164461488386261191044424579152870056516433847934218730558115236787259113858507545274945174907981074725319575141254441024096749273922981521246490556745236574627873660366219384786805898198536153002089861621263971422864930540534057397410435335878642743918685231962475115267978983389823601750451782012887895734887645278068268591672937313298336975253757779083696886782639643272755491016683286535396385154812824659527189536719207577610632985154614753330156708946341188816543384486419511563715973640843271937624305345648749429494619985220085857636371324120911818919555284312228105138472067971540876751737452501892361560909711887736510643591975641036619180614120794392621003851592919866220183858442382128155343854233601059364568808004921804951967245285749866517577731568406088845067620292191345322540152162206702827112253224811480552212702266991835915809351991530350470090107517556914702336643095744140893446120518693065517572194678007545287756361964623377634005599048444047019705380052886114704263125980363503365618767427242268365546953033504561146417590788660652402930900023014425222945368588944008039041476667244723237339988711961710732956359673782981137058303851995600995242060451731531944334892929508953219821813583314614966272157241469592263494406736479564260040867436947477246799216595701698069793190138978107257899720659635002141564773543671672004480466438309326430968203219563491588780091452389807742747017355274639381841241218135840889249231138547816132065748548175137262544693354802668864130154159795399879732627855998237747451123534853030459723162308272510687067785010557153981862383339565525779100066119023386592580424817658656012202990034953256515134641171955665166547500509527332028095062037136489804148480871483921869077330713979430806015416471001928334503177924851704220278487596824294858697199363787048850366273967947297346607193153768224778414410719002970115336266925992683277422797606577579278083163143655702848103101080635027564660673406739948887714785924713202359521116463322295229367359334304095810049864179843661393836239231213720808016621671588433270164981146387825386868920456947199332836849959020825736198692541526144331427279976928088684086422096949506009836423933220223150328007410460175787306726965846055977290170619780802556620050950404678903351816798281836604145870673583403160946212191565973340430590032904453980113775616343666142330668172882030119182919564252299046319065233938565328529749881545232038437127666984738225697018925209290596553051808817913758110718667698775529019338230093947727825041450203217005452314128783818164997052741964383745928724373598716560369780204549533179855008878029931469747078265801758140292464527385720114440254019938812604698374892131253123570729745736333340151263352910265007853087341954558536376530666946274725806310970964534470380933449498540995159279768275559261139761026990580214081014647364028957679243924514774929438952242432914902944957254878571265203132343992276291219296443463497022154731383747750902387459903921502619792713629197174883410386637743061948965949051037903535503710219908135519233944865923785818105919454480433443442985499613072113142056620542164652126011903591898011183301832510445119638631290916316493268518704406923923584639074406280153062428301798958731343357237547480064331342163977761165753607466091071387041462718373686536245186880347980974889678010389437463968651936102695774047737423272403372860255665674136512832491706450050721933133399121456495380729609333283630823617198952296123077194948829710259572416900653898662790950938389549459318216107699113909305629288331265655779292872085007342120960020634080772529241551074312564086844657223419161432009579216279212026010976472115542236046696192527453614841561955424070151519580060546437771477151102411557972491855621172229025717438718694994418620914955396765224908033941455420748406093287801454606464715195516408203136581560530946403063003117301004905087268699641716423652670864091791912071396793032902627729187747937500121356159464605760838944529599862550245116681244002635206035208911719744121733287222020087777611627614646819200372081223579378367788097211378768911277251731264722533130455237043846159044606954135194208214461862389590254518946476562795438413049582017656003521862706873588382580150035444684245806381206369644655307544399435737464409858044909371880743040733523608363483990970485484107028471519524271286684677341425939676623409501598547042966723453663839552463358557781414817737727682872724049863872781443116621837640344020270090937223787077599661568208455515071541575269245242698837612431431818014069902676995874703773513325944636659412154544103408876849774230353846326090766894557617397392725752992674720307157928502147191619373072608379892984679143586509531823094974470914806975425406399735053403055753131379626269050158823300881105731305775416385842309274099301887529176753146785632897489074643842992994180523173389596803846110024015126024761953127411170372836534483043501355838483784445883049210161107657329544825186451275233482156700741643889765237143272651228995875737341693676762936671874362060665572047448765485219788047374311063865851569890310629569136799683306859784367587902789513554364254067736677530510712744030598727575244458535107880198810385116424061611327380689238828943305008933130298494137281065118878926028538458691292803735106131591346558781205842748489775770747560721889529152762417800755230367591407807802228609777803839785824802346023884372040230516577963152288510995043491570837239688737932296379920438905418891519134858965983199260540116208625083572896247656625338239747484426149204264263239262191022135274180493802244205796091570301800319694979509071554618804737019310770933914187560177125097581483706842445360760288567810279219639997900423810489191836935108775431633538656678573198519471381317180372957141368591598192424030126599283238278382008172130769777411469442928396528368724362759886810950905173220956545946679044988051406168752591257692529562676874051797869236130671222315775584029518687274938966633539339963665064230907628113048299213381027526631460368267695223536803586147437720278470268747424235723026442638539383889438102371678097687616667244499331535298390526351655012467916590308174698494816964985053786176954908205080267178522386872870558615164334781540805184762055979068284781270816904088134662752269610814282185205146072359280624761988139895075855175748580828013083100052516257506664158344366059984214533412134781583072834412291615026356543188525086312638916912033451697433703639155260066449707994073930292265499232438942277614429569895100988925365183761595623766770492330504040977543376056148859110881350748527571403519070766170208338567162391782182558622089841930617071129481148358384512807872916595221430694161085168210429081927812954895954356964466240619407879175685753574967057534847827324742366422912711724245750383934348516480456748719377633970350119687451204500168671982235381086438774789143066168947468181538555490041304027048526561100407003944113769718308766128201436946626738116345162746750460065109426661678924730025865345625205572541059227537617622178923140723530468127248549070917249219296349845859767505647630359444747994780643741400124107191990451674360810125814304554044791941010744130290613064119655942435580211608684796335592473018790176049352815979562407475199508639562041030234739427312424618582717123692783847735527114108318332650197431337680178145556479642669780938043100368037942436601142254569348381113291897650894678637393865809054514012763364391513540133183428487884256809005686741911073107926604778263621273238688575275567065534037961226497973430269696535121323168488601273099031237248214819813297855996139795965685439255693834117658113535717596501523925960412583705182182934423946204650513738248525565306677959723429096686500728351297235455403240481740236597950174292265552889010827424692454927178555831225984695126256653311075953372913162165429848665334729445791642339331304781864445968701613224582345774472779700812317809268225909348694511148163153162152746243199470563682478853994800240126998165253556671076742994044156358220477469837947988916769917089246808872763941147322819985184401810351035744862533929436748569208199452424075769831845649283357797303965281278121529872396269150621363567224743000597203040867597586352329417226749126195316678969617697390343665961866407841245974062246167362534208476418412519444362681598854844860851019568359527867879707280544458572694044009790383766658111174047210267180456150747469269628328514254423184873696004948235001599101894744781884312577658190564531373186860424825619068767770092013828849951630192378117927028285643136380173120522011204307546460676122038124230980103952299364955007888037511578405149243288184146802150889064092903721717409342008907795968177578111791149203681050498377698945281053672995702861298750946559981204918614834638982611172326665868183910030982664309493710481226229174874810943805102216914956520858382727728530732322162553559832078937235758673083731983601942499594521500989936836020986881882515550343642622782578959370684169592181584479525944084338303859724061034984030012863214488933537124138788424007727531859702223075495945180698070908955497465175187529109659380484153351239466533023121057283404086112278624313871490229556700125414775506008256796319211561354116474729054577970476197147840195138877694110346735024957973444269148144840128040116505748102632584867456140222941265462195696636788750156096095693471609806952423699870766206939153938303657728009201554488613889943693557322518371137085704648587730148413702247994731632377104235805521932336516527875757805150601151362010860749798023813523294537828950507192979203930962971394548258017763842364526647983431464326091786842389969775273475250414412808076421082271680231415815800978915608501117102743916739613639874516481455710137576651807382211173598867087387733910749469483745490723630279095440393851884615174756230402864185951433925481372477796775451787617189591367137913644376345604922984758637035721526709708709208463028775028742637049029010966896134646134001126217904572997601164175765217904334318840486951283858255205951374987851261852660171389501773837314085313781719704462004452083384028143687186007327164325475888609992609159393190310329518599384561302233410260352991973055150857834005918124886685644565965694580171416242603810739826249348241038797388709783481851632294859193009141204830036090442188360738139380608616981035291202887969222806588309379556244963497863506521174957673422830214383580842764572096193595517662389393683369727849999140932625072964646829796336560818931867404180933474769655666916341532185989860095045143703805154302422983447576744712796718671678903060965447275577440084145120037004618898195217904835525914639798127688869632474606241092675703356749819346580520155624645048520173803863618411718091392019101014592969125753320030973336800519050230668870758057164069250234478597165524869253422704631352603359870012972669842846473965796590683164477846439461558532659555867862448332004028131906829781006945085893010585500410147381818000823391476170405410483699604973777746130487089892378980321073894385193538979203105423393984924284418253132288879859738562836853506767933719357155256758956509678525193818493822605890321724396522458949326403966383694259335527472815036831984718627199975013413496318817232857088834217037037562099709659451322368498387772206382887715519405081542362540233945973500155742445345559615241881585902731846302053176437844017843392429088259432368443607117006085959885519360621359048297686066610137219941885210562959634133722217704509113261638665605671312255140911078621349314523656253047104102631761773969114395223379855195327776579143730273612861730298880703569026630420614409564020719505249599852912678888679637319566337616736957561585084923449642579006522351981140708873172237950311671720635294035310361640601355164092314653150153949432481170018780288807646393432252640460167064415696700851886404083710773140158036326180400093202361623427862333682561247772961790141356888522606909352001818867595886900887239093392480798132406369481137721528924718157040377179023143550531616477523680880148848235545386706384326857253713127522610366948996951084058925765312630265288508867015983375574619802144384488771891772252846692486122496162845693167410566562525368292371013642433059387475091583978222759844819912744381914137177899185400956371378333585653975483741876990206552253591874150525973815758379044433126900776612209343519309833224162865580784482015427343386070339718740144536207326015292418258612847944339732047428430074764083253796685255704800381833234359864160160628597859635372566292811376387408509466802775674221107286976257999789050661288265030523573207193153801614442294269716505739431151433337731723492541962042390968074024244394712881357590791868218908608444849857684835348821081803530006756313435312712038452059992716185802052132169207145223135338745005272248359294053265094894080970784946878731545036692476087180394038953668290854089796288952522135807952314700040700458518722332705546874405084466146840100019710774900867513781438769270850041485438968197096419141083724935200783669306563642400666424308908083901263000843218968241538462444673928885137878670160948552524349273121666392572984691155036470375357022270949945845706726550434107696036053615907259593246008160663225189084034189503858090338907646125782608403675157441810384866394735364488166047267161287179999754497987153919131591130938741931589322904842721925518169781582883489267897886852216571642531346204377529403749709074982136355401699935805148757083696415538223239091124102116668752299141252513448344497984905297190313884356032431734915840800834038845541612805006199517910562207504399072818419811354216454426097146741245988115631070885415185655105519514989486360725978151608558733702160182369516587113549087813594177931574532319104050692377201559708873054356101540000040095080487856998265335667397901287503874405770920095680623572704952626891320261719844716871898237877630912483752056918540493997677906543313267757097670845617707116422913718955120510871237459835546666831087567663325644436437595004721246835023721854478124116397911674772522935020625180665759339218621706282500209893410066835176592785343320720952157917595768237358837948021406535227167965741486217713653899609055759186371425031439954696283824642121262110994189948521602736835521193589854600738471804397191529374068446767695655603265014930608510109981609260910274015268675557764349290268256374368312399498676852842608932699264310771382539188701229627875761989704059179437358637567906747806793245175756623010109421055233928385092789601579685496062400669871490742323952380258176444608399548907347914217710136666522622909448515406754908585963322667558639187295323121549774511818440720511418104040298980480269511709409934333846055248173278477916598379383212970903443932923856123388890572832156438131665251507638111356889276055824509896345459378454658887487931434994587471817404422540133446684366865665471929067566497998726377582659885264629540129847136661215280222285113781591235181204904303882541995004869628011193186007544702246960777733750762773653682591201279804972529001932247155057090823000493480988275091553255599026645962100897914229835244255332936401886065993411682940358933590069290007652537148692577279447806814073257711192560420024591066272048713344469822974455232476135096114103988381173817745475848729072491264877253578688232661138276419877924695670152112494896012979547666088487903204622132206055531988883214731680527260207872315185988331705793213245247553259804799762810720084589563102657588219515109450017342221780719245058621603377164535306618906970516450084102842316560496063210802518142589521784009772725299838694663906297802523103944908239732204282304390601953587702934200453312175744519523683061987348522938454450400524384153413961717589977060537432696196636774216300710177274125565286032907069653078160697528688593961320771365769114692474983856742751486751204198111604654336861140398854066482374657903512754842487713160987177345220880971653699752769470762980548579920506636960393381528501746192496731849476001233472735279641458274786200257005444914391700848173067337111721110337994739831637915287505072206994108788099550780070668296138418861633013863932679202183742597132615539597291173124304998568499593640166394889163170208659396092924188093397422934768535605229084750174660711257240948845273178333600101846277360071365431851666201990032016361251137648005702761827643529211964148474088964744888426471669676700388098483989097462436624597965487187982709704003427579644564413188459317413115204919672501336239340490452129383472936834307665249052782501716697954124834968104298814175966148813562815533072730136219114527017991864186964045114394757082674293475617552643766334996132301348519587443640732752062161974430432547657899632635812358253814364252559302325926019847810069489862877784388871250943152002889338856325548589196332036185670155873800050683375767057426763142701385909159345712926760346381400226132633992670416415591076084194763022234963147306901090406777161107637403292894886056138248909014457841728529337149223384049347464374595906313023341155760168294550885653283426580226076798781949114786221290838161664023377691542215733475247979168938288432551138231159704395850759609376760479571305348617617349358062120420422428128120699970934897571018276079516893703331961333903114342288967433556681559904685009673989070727459278932140362211578150905238052016189676807226487229030952499878263560605321098889373320074983418317661465508018878535252524451269346126310841827262405639806465620515643077059808103854515782187015001204592706171148672405127881875205571136247720382802750724771896680398216437898659069098675098066826431624384056891668858078275035368471086031317232987923718025439419008240100137723230265307816772986487828554787663176590292806939211937023657584966766904363278877940937359264085631663328237102919272157624333807562105394823064213126283987205588694758175356286043478643389869233050341012472826549289156754722136672528244417199970898268264748278555366818874111631073760003807105107388547556140998258806359530593119188255507013422810175548182787417619040308030861593387168865266874346436266360414896825251194478894600161844981606141650667065759266522495962630365079132517697598125047633464147131676283171813424914103818797908680828001719350270102387682709185993447979673238536727261928032006688090518280757697889486736390268695471732531696550846577745199278916149425978473962431483152009837500176016403169851671255144362581842404670641429643984257597120253875166397394731108738817218293455690939512632479168399714606426483241800458092170050522912995915213285499921070935303399791165887028980459237003395998423141873953844854366248518990431410794968361775257904160639653822410208078104870929901330179244788854579350093177818649271001408431951240460191780909125644419133639415326730747017908934433588752472473809674262354206461400319182405108834561220473318081197738781859208774183905384399429412210113140165368124971593998753371111086602258213450433191221045908376069271969913703371689285459161793494058589100086501745121152757297657706346320092200176344214225604043440584679938355062310531563001953690480877723272859346377584655412992534164269256812877015624496795854683674714614088319268735825196336084400537533857808161291047135902357867829103933227680759377068708647762056364578676092443048037188558680447545737387313197313555811303656962215307756379998547096977796110748475261878123358709773931935261174480088962410200718081149186688471197792455012061986674285799358582384594320844152490399114458347407759933073974818718762871338923954200598053395775281812220344204449081291827156792174045785480300405947057117246237078481246136931337347428165987653766997854055451601142005832681984540087462533942175473954502675235201147386085220497151821042763056539567997796028917460036916089552147542309465803149197773912627608714224998374901153149292729964944979952404271497961549048698076206043052807857980139901653290368112341062422613385138118310264524659522805346801086786657331327069162783548374453383949387821791793348047797492641804729752776689546532741227606952596080819379973753244946191449527277475933947214441028517736424568225799919321014763251417153905315887266426551604818110741199704231555812669864645171005293561822177034141799921891555550642903000016691155041374802110580251013005764499455025497688922730545906189862079340518465957048544313420343552143553130561336490410720281007640848201696925256299816363628211384127809320231374060191679357821613670510906136405929964481820626881743947500522950835106490952775705107654216780593622254652135084299755571316934376261022458933608532080049883426161566474073208383386290347562315557893106451997733534459641399711850591468829722925389762217143599157597780065912966051386358963652698886837884198545057456218618447087186317355357134578965303578203479401786909253288860437097817605142926298290340959574508040514394388055556581755943575611335722182171042805182542892727545974660650330822781745380827124801997539687540139385221776857161129284400786450546669329000987771748571068319982386500836959665242744496878654746670145460147099157685312581379818014753562280910969632699821986084681369155803688947932293134113064709571909705861776537974477967657960812906436375211189595386284079908958308242177473414214314018077205738549671538142052459833652743749363497859465436653548710234394778261288409118488192936761789532551594449718344777483915265534343389957370779358168657920393215799466316497420162361215842764320955295989879750666876679367462584169223986308803585578912508557525013506632184561136611781139051339982199483447652076450321295334030156735440792935769997936729198792373628677011134039236732718222175922922765207693897991767941482626484924555770816915336797799950965561822029319403025735232449118716929922857494077372256870489917242747159582222719774112444328010480120148409609507855250058383232696154579559484050937680501076992949929441273262498724916551634695660702713988705156951558530697152569026706684493656389243838121390230219785978203152153010260943159199837650986218883183008016693451150724965378618770408509106135765303800411752386146578930061103145870645136920068246108611003217564922372571438130719553434823893374634908201740771186761134094415514947319335553763976951978538417111173583067329295347783065754375803774795835081737066555730659713508515135041931564487819593704274108578532001327955632630263103313898654566699269961716037596617404544614420598564305272369269550561873659635295180533655378364503178851797214541342015345053235690285510805689453851649939547656629063168013018872371220224664374976953396809581662425620163268253312579312746358412830999299173267639421983261264768332051249920429840438787917065645426321625291997637821680378644377268663544267622431455905049687169126761729412584005012363766044203399505061687815605969854681803204438015900665316122124710574663515358479860387986524222150462853453824436094624000394446686850468353300299701682462330331699507255444526813922983455216521992184604943983964562017124752409080219771712435589361607479322936089204523282341372134871653944078911366190959192935593736774584826200102399881849379458270702348505114186553204486893605531155803469176995680813735207181058956919970343652434636215436745306717213400840880823011625553905948496199926172079828545085272732842568421227542977325730198105744505115583322536944774716103501809133001908982815748413765474504766717390646336681648599886861222145029399496394140663919791331253351470138907060932629248111230325927454819994823916752743027912261906529661607089078911749771618033664133271570514848804171564834992769346909095511070118290184130345681521604248050611581894544173645887118599226724760927773171733508284726744477225043177809660380995863821977088365938452587550752446152775928504630281528001188164491675248468697043747320187077120884566475624317444610345815167815999668925934520653748577386762942365612179750327692763917743596619999669560537928916284255972652904113557568185850355241990898824417715091234953647388892122339334548613704152869680706928078594379328325027056540263405666334462649595342859310097877835146137770681819183070048073868331015707343460768600410898955781372404306550201582044885527633997418026727016139655313976179033087411179534438018301456920315803680639428678943422913523804153521052038788395599192787765321049330786846099716497019659781508815249826818059794211783804063688825024358877652472213544756684504882401149184334847245904520677281605110562154435349038841579024922187263245492388310436453500611616102052772149135621034798018700798190051661361231400169815021184062712889718356869968183210329520683261956723332468094299710320549003671417412120295164818503232516578731279651698946073834377983214786858132785809851886319554516156242659979417587278859002433186542648713506976351457388883649906278057863316486982556801623696260526843588335101343104402509743794172530113408421209469320409907272111923482064456573158908662233676356605109874117194438180372993706879573007604649115147213639070013217547475145233398281617294234033334707636882902213295669132206261672966655596132235103993471199570984580315215228316592195885975746137288157212844911135987356758032661586413719896814703775847216185580434244806996399024600191051760972852579536120297465055647649803102405153450216277985798989812279686697734673627216731287837764947287477499730203285284793176615586341861639326767248335837724057916871058938726211748491389449286563044330143954029112293316740164290673840409241776628629193657037177023442208739746966736990841102176583511243460611969344150729141143027449714115241391875425898363520663353422850312223762112217680577468886888228009967163071086213971154670248712181633614937708848939702332422626051308721089821246232346224509146233149540129314122360554247287269061764108281046760492924356179871305099609434952091217532497688657500167655594954094569338369316414550192824577397667814360268083667851528106847128486581335869907361205106891369925571249829180140963133893286686350727216967083173916369177669340263937215275161972935522424156801728881186704996413758489039242375518957544799668481980703735232306983017780369456716732591416510466290732969802079814170300728188918936868727677289454630397551120974507229397063908140011929295708788700600589954795113201799672708349336157627737305707341185626917757737206336412264956721858222890730057001506289115079969060387083655790807018634746452944544724602948084874612200177532034903446846592670682260955892026160452244262245386860720571913181755909812781006530280574338864724174222410915806570556473960127156849591765129691251468708557149887487075020212412355385858323235509350231489279036863852188424249886953021641429258008405251929696928036078156496913463873241503226729716087696472722165756456832487900742127302427916541169536156261481128868674306673230915796504927335575278460539078245324062624457982319745586325052957433809324528653170912054664000746432982923479016433798699647701221225275945847317978129429085081493190352932288528116352256044426344458137845900848353164513256541856769040489996836095316241337078672776322461373794388383067147777508923240378618185273929870412622745512565878915218768786940689271066774114530207668188295630696152882839938312201977870654742624601901296251508232346435092400561301684692751800593673462696821990842866060303893520898739296029780684802764650413712666023741805541100833408685936720609215932852954464479021270573689187426920900675725495467069734754702154257070588247739929808807527117480219545930797278123112667434039776454423116420013809686507742307033519548669585518682272636121966215378616229126647173010640906353898834982901712378964395210804884690443429076010187106103632585213568416856999723219532922124252231598619609314676668409017266402044438258083717759839040640617412849961469025280002252314131889485488548419039918076220259829940899700352357157141377150563203356718604188980913942185479478349395395606171461647525493186699095777592696095675735770627492973528916229343947028508708051837116183700181747418443046769488764498386280808545437048462569599628630718287915833552483222636281866420371104504187644617827438619631261801706318676586733708949892272208487738568653886507773140297226268080762291974838414658945619947887215072177359272619281808343655021568218504747948790386096360962631779132888345576496191723173535647843406991193650882442467209120411302936051093595397784496173287841119435892222881555340671581424429005007264955821454833882930364073356017123850692330958989935203073753530702433820218592333589136086881789835761687510241105034746353371242416613848703714549220061972028840633784341717710696968941588050043184165024872066943283319316190438618387108973344544662607664745976442640443381021799730198059954005179209283851493356115264556622936888225437704888678933508891942255452659255636313004838543870057024493167206371405849542579347838943259227080488562356246981418091797934185944120547722226392573195554240473848543245856901908722015646897306288802820089338872502253988354973019592134172815090025271368829171190872894844658239598376354048655393895046004161660091650703366326627681394864893877089740168876049903747317727598958663908186369605130355977323106896337507825792874520906108759539919046918702713704577582216284207588227357923118302527823885747613287334733659355910141809096417004523467996127873336012371468228394029361217923651935846185169101813507513101752938065143502188971550540312178491303730824247489072165554083712051116627693480977928459140558562600231235014243381947780658714205292649294962452379667547433401951575224460649378930974304128324780903135064722958499506716093133065088528387820222367621999796953497692560332087268064392494088125165947589789762651715304390495020160875959381155233166851310045347623902339405983407194574778205413862667059154403081856467066073089666372014260233826934492855939071376974088866860849513294323049374432405460596069051593699712054505431969920791891927383448869538295441519384277615241904210524087180062557790028010098346977870103351234621720602538497977531581459548615762521097647486625294508295309595481352574334903574496929365137920379171079704754354250985645121826975711443443068632624532226532571979271368623380106236941817718268279343470981379076512601973133823424004389516962215499495514903430525236061431630886803775436534779689914933403694992858722349565481405932300317987210489769434830974384882711586177729671559383923536710197832033827911937006052890697100685578011914402745758304015131703301643539862496815931869328896703354732320325221981418134838672703338344502909781623823920448465640979042179592460687065876903991955904748228651374221196953383381147690527281435291516245693946744166631074572837244617110414488064292440691110131722020191033612231795137622241525017225487123953310746849197617246029613295600247407440851756416523438275633151536290224793195712874608775732893702565886405700275716476558218754857249046412508985203994480433175966120939360821350147698624046765160411596090377171240471812640493537785599296158420697339738760382421023732231217825241568311626891997588732427719022045148885173710314134830246061358029978947714720818654427086837358464379070689979292220402464626976412881813590429936585248119820985213903719039407542897595877809995862256214873577834844335107611623980030539011502961787328493496146515224272092702150275321197762912127118506350617735064255110893600954973629420316730500591684935015380717319363172026226905980347251851601341446081381499320470782603488846382229851176067539970674642475079621227356336832162488968129055350519632496282711378262387832289082897324015457913820064597554168758464716452849044550620876789233356278784409610936609895686620110121015157096832061011426387806571194840580623469875700425019481139206054507526470004678255285852904454749518226190024970923109941075272473111757129094723616525613031610440931638870779636856317368056565912861664915677070205810144266615820009767174406342300929283060648559860106017453667646599120670714801028419342917195876667063945017491320857429021750696016995476577363879655003061479564519372372634026674344733687703583571058415026149205863382179168065056956007249965498294466183087983836211808813437892565068872022520906673965505775329417870176371047200118128681774798775536654790536168052577893771589565379503159831116055178947705353576805715808734743722523748939877585217528341855155357100637477156268533311191363684083163045309772299342807049158609204317908622781242542162995494131171598325382102129624416962362612541815338361858946113211778951904541632082929438332678157528654078187886973648004936728319208090915107311442780595913699946969412330565846234374290585017628830534518520588364829272294356043101104107765326714616889201196876751937854030425611239664383927566400132336119207724735036989378201482012933070451965557478387611720680375124507558383399623582745995615280064011693835518714728417019740005134438426917908465826142277458682501187231468505059613530306846874990222145631490778238974921628826469743019017718501076708309052488978280155386994929806834270288610792369598088072238942904927333501357515751856980485208192038899252297351295512611708336960168288598665964257895092743434679319894202981661807877497299811232200196844389284319245059069445226915647782461771608022542468831535055150764197082030279150493442946985183426622146874627487246636011366551694831622370375437340929728006995139080668793838732740014905702815657212275464023733004215890471286715167260672444017330703283943897864119020250946828474907229146333111643235919323010549076638155342634942421855910646142722603207144925096707174442148008861907407086981850236170569736914812896192444688444281778181063999619234040357933207764405180505761236946364855424708557881307198126918443921280089869101937219358710707533403799859498277862305019307169873785548239795542234465606042873525749992993340460660159695571061550581531798869169246628081493554018967151986768690992314191385116531490652233264557086873335144672461813528438147700548277920046205964028658857940385405640892280928988275439971940848782302363053782205128745288271583614577717322189461901998547355076459919617322074724910438317110814291853944098903670011232853778760537122017054536523426557347352358312828497022741893686048290962309052375592431400378175190442564511017982769862999444914838709543516203125094260259346560381376478995553669728824638900607067379668336359161662763432210993057416759052861678183725496832407486168795388364291691938082270117468364472427774439676981806766483502097938193026052829476944355856092223191289728525141123977093515045411285097613264838023344913133768700666029500409253378883444144915133566351627532268298658033164783697746815473300523309820681981694073961350522522251776246623017550114253742334153798727180177220587518138528252502277762410447271360154471290477838907416628078018231648795412976364112032557903221461569492243709953740128845172544320553601798696829517064638437545679635698480590477783905202408151626788651710321587654880298251009876601816899005991034923677076835841230910210065101080873112598913594842100955609719934105696874712374412561891021950974634685063114797695768534264197044453553607388817355688028512235253961720370492983006298940898971268458060974575961488299687358108126124770173375521654843913028651968357292973965538714906394407223997148070555618850213802548550653747178754128769412677675203475615450261226377885770362500776512362132326762689428220878817850855984393043733278543487875022302171864179277049211001631475212141115097700115755389069574395362436578240992150120212548872629601765243762184282889139175758493961703512077199952757825596638742299835180333702611297598170023629762284198968226938681349254958422998221741673030319143271621004727933525359618803019952681096114212391998132240359210742469739482645861900888595349028832622376900561840050941419025767668923979533979020297516362509648487354852733987299003881521844806068210285887430054741794418721448214744036151208566795054740572082744961167253529826434784048138445122534355794367216616062785239149165590534814652119591393988840536363982320327358228250131778191971836181520421526702762960541846336675994169389087955573610102597804022009701673569209104263032794945775324646252718713153328891311273481614372344370080345440568079533584783088113589667198216748828256099696878764099619785483941260803000070061925184790784393051107185304803070509458084182140067781528026885059708231248825179000424291869402577467992815158133446378200678015198778521761776288703476043778425933365670980915987751514943649982962641853169263321234805318000129044614286752075657378207217092539715292720969748516071037405444083817619571749925585923343954352067330984214809756615419370078615125156069116836785286440305798074658184616927802561942161284399876359399782569260090235811147498948185774079327301532555976363147228128471935039921741505640336268964615044951582600472366009779250975240163055726648157844714813915808940001429891075697117054863061694855296674401969238274633439269505378756422398392602218818778919037460769298667192382192397551502676772527805522671149619722240738026153015921824888814578414446390925962496889095275467462563961212311235361055839405395597714901057092115702507036843680223719730160810424022009468029726725073961373555717079444435516603986867611598885954826082433151595435342584699826363542883403236439633222025356913474267454179346036317092435072140037025863080315379257276908869494915576833068632197560349610227663183816094643922151205328236772917917006026033742843288387803807216498945803394157191638217742286677184778635893993274069609489650633379746721822810570918809526796564708099629152494884064905148397604812102892425477644651783834915617185291436307433655293375927379159738726058908314191496409961537198565142467015867956272178758347853115497628260705313293576929677962643501007050968939293769196181598689555351887482256063290424280894057212352458361314763075613273448557794765416800812698246042038311422541884758481118044070075129853447760355712868337024765191421758876975118532090974982809801956325758888207597885808731644074332373103897180120710081342874696462861360710449197029293793848416205455871227020806959884578112102324236565929067823522363251360974426743381154015816969912797719343015434795275877842151804228840606509911582205674471488322360752629663803163276388248529504339341722998014085997142230059986332534334567941781990545092115494958098603980979386311234969047123170901062921357216277859756529611424064512929813227273091803423330296730244129128661698310792705456209664048000552409667042066096668030819709910948829109809545262726746155009594397197224168394122709359862241739734190899242829294925273088761354899721904915676694115720443904358830862155002750018332852652498716113525343503154918942742976230741831463657498092657187883085283113711644405738428129670361646301867110671815940136413370973971478412308208842580699657205869449365651452019354887615786715940033305568639492470364876878232419969359326862310088685453152177377227026309686924650519284027281629654267083100849336127112567672840208646151463870239308217964088246726601774689442655046373840803939826020269732457234380886880994677177418425125247795263317162388134939611339148683045814308845391589719784683188518677790653581809406252334304483884460041972815474825203971853611610702386712578390268036912732618800350489030422915196081618830471094112054598462751919570990927546756988810820757946230741766515002127332792494668274917069400365407430041238228865667651208386826928323902979046538647716990513938247933236957240731815268701444392533811767518628732660809254152069245658124547076030793474158579049412639978585931590842170072926720115166891493180462890085537305743522774829884204500859688617221775196696198080184037829006548315235668784863044476785296997710853705404305036375507511509903715457795619531579403361268608792910862207689515582900108642279607122907386886435967959519698056511014201881856640896124110634224990399882764286106751125591953314979309905316777284045998363799879153880188860318309623546787997911389394146452645868528872420071320622783553409381984648072579358272051109583542641306256431726510432301351230645177186929061060565067351930011264649365931304358226530680470433409576318833044681554767461572758381856443576248087061570849181293023374098932883510623684219303261374813695591096217547328246488412794953627020291012002293775919825514680247394745360660920246064743983508282766763395871391913607939190198644323284558383708505266611677665711102426137066625702716253556407444106000869694081470804526300450379403854945565296458012648719285953005912110712420253803758012930985671893968315384341993581646926299076403064793231768541402902267706386687150702806207863299582315962891784621023804311254037039023030407503387457912407543288564274898933959868440359911007295214795673669983430218353256354805087790427248606582083465309217717392651038124118146382841899082023553728732611500568803964139669806675356987862930418831805378205349161481276812167421960117052007386884879364016712689765165913403483196055184599319980186435625915948763514424399108441487425362990532346267966577170638139501678740613393643749144188096437208060226408025523003290885773214067923524591520606019300645883264185171153611139053413313604175752864288429920760539464817440864241153080226864250968291662882033285947118616381254065798911377944941737022858919147369308158307368078580865503538767471618923709866789437240943063022399692588297196308243062168635269209444821594054928286932754378072128827416163800157495586778876980507006031748595191279367628085787114616996842613843998802668491375473530223804548637862430968580815531050259739388659766433736944375489748458118733185728349914450681950321510832521062092844198590447099637046713039988731413617974078883281107315953503123618129275342041369733184602661198272521012916806642183820661373157253988934226965985324008458757550004607184514909097105517959459569803539319633263828679900395754393590919671520156806149790472455483564458079876222993620978058266441186329358467610048246552174189244444399169711984915767438542791542344217300387489909622841807972473262218483094367780646586963577542886445556220705695527756802813763385463213096337500854506701903960933234505930604866282372746928214872173436269387978611431349047019020931637056755694464322186812625350547034285732969102279581339368077443707967163400384514169887292379132054163419179858900432895555373800177042144810165448750170980400321857388167457323239259483988330504644560253778261488044197703003748909057894737769805708509709602022450976751949415621205870353907534940652270173753607631348071235798416003901831601365260324600076655700400411978055960519031283457910950440910274773633567324358493696314779122816854559335047686131617306391719255189067425635951297519400849030285795075026093421496956110964973217785643553188029561249615905183281544932442865697816417342948538536929841840994652577043353133403972827740674966323270802058589908710672043906937102228979606337354920287338605577471000999534303302183305951536899055190809757949656226318621826616530964037968203942722920567578429893258854602354326019846544303723204746682074373784617123336069476814037749314362960216307528756102750240275650828605623612645094263683442880629194121333860381551908090851359691125966101509917312976665426427619797075077887475405360114475957771851544278785703277996834257896657546862266542078805991780809871459177408475305511748582465651288749577347282433713084813301929087181500973667057814326138773932955293882314127978074244742646473678136780294102073874372114950713594231100547525292517569746310642118971654967475245369421214663060325117448522187230105822976301115978927349922058984475836759824453362447605315411248339294958446277977808651070746669319126189621222685187077774185524701496684903248549014753388648307591073375555033438692135239574369910949174465002191660350297093189431504046732161334711503953157254397301121453179066018718976492110066180142146783275524602166518082092964395787527171041480406078577061704640871561013943363287553221600829038702268281482859839289579275982861985577264622584019368318976962995917365002072821999286146736437281521899700753884502699819405010871364818030971520768881365160765464468277439044398726761129954753861054605254048570546284273071168321538341810055716623109665328230554081360322874663184416162920833223782950109684648008881614399014021844515420035646650156727205888326705695509837016576126675156352512876785023368271734820275044125704771614488547511930720094625219119546299100445606721088578650608882848833461850616391858618855494199817185366856999091240564030334093899708696257138431599391203534254331903939008950054407735850891738599282401334450506915359662486560584859445057821360476266602574690634766550703749742779786773465516604883153498272037951228208592539295576536990933318877276126780294560665368134385807686282696593974188628170177907929088834229698422064506548152129913359675140404124610774180570831658840130274029655538329503964417275000998882876766471863439250799447797920617316481329456813923409474055761697342781090790391986325380033382068051191956528662858565324146835407425685141525396981035758931732075225276276773889046533727311066431359777553567035457327856913642489012096582847641504470349341257365913438570670669800313941218495521797898708177823216592026094170603095505242996433476583039568485133093357571022468534524632979134225859282764886651944374616863972092417467753211150505025887628125288032741603167836810922359270074193320979873434905082559757708905644162040669865485861083345981888135674985605477970837783097416294254616186429235898705901961768760543175122555637143939027019590634963057653587555621390639860916668420166043281161616720137453851018247389871074618450507341611044514533213938477238478711847347777968667766743148287542714220455178142012592784265689337346354093523375972194370217931174983756428880083894027537047046813973602818104376901987805758674104776317548083875550825589255893494121333673335106762013842764756337945868937895924742714906853036787479620769787991519608447117052965792998225587744561064198519005751941546507151360022171281908063667735526570922839341433203034115575860467260755816914929797154769107336205980106748192036950590028306652806595081541790129299109588677485083369881393388896306340395917960093814510464842407726429107425116129862332247445171112593825377393747854384933971312548115116764406590286461241103318645947707548773482602954381114748749735079004362094453022734217911290043979603217512815828946824847436813577546118814336913386645734688779846055423977943730755634190006556731424583848437597699021950181183616491464801938219643711851118539204340027752247480484734700207296553816731546743611520187392402629934936454007825493182464705618622003869184777916261416461814792236106160219913664374898555433907696298764249254596916427318236732974834696880665810453314635137957154505341862871855295834062223743538419319862514765034344730503144385319241399400293420642398348010735230803466764503479625400297154391984857401473078516654800825745996713156418123995562391198893227128245611236747989408133998891373566327301049768754394225340953938193020702094254266019886990731506024857385152311139904290395579713390647576667803494741794035885540347350304959494789488267591164865639207418132067368715193277231437480116104569714636996209710209160248345975603201129975725527002311139891401753723440843774168766015521560497205476745618940165165672136433739840540114957026037792315652616946359809350295365411038730805356696765693120927136914297739256124704560568235173326696592859647483732810326411086534390174458189194756326240854862888322113011559515957898393777134302289730286610650266785117620456720873648787548850966539115296110662850562866681775392994481327869447910966551561436497220529446534350637090091514246515912533063299461588888657406463647426440222353444136731065057835165651826342422577817856129331627551093676368235681000659087336064032043562520208525137740009863074438165805356117024427646309624864334490975215159443337127768365788717967337794704897736735071291036344953479225554058252881360444977883940977709763135826899350206079340092463201123414136039834766150581056155858564397161414632358057285107648035215202655253369166338754945953671398872711760495298787603901845643743160172304376535048418019895580175506214469684840658859579610201963525082775995172377344236751294077990728156237663660346168848644497458981053000725357642602577145999286673184256761584736897331643537007690769091850547414813276106923113749497114251421958211919414348167714035115411377647752005958775250576498902951614390709629831900108630217717771333528399817589558299717836164656922497302956088890959236103953697991808954853065588892905662691259224420702222281332278759042631021444615387127322369661241732284220959679565710650909740592515322889535275342471932474343347771824133992792296283426380023198188668370283918832031067275762514307614433411300645030839882027321789195978910839084542803652557943213558986432965626998513450740497727119089026105489458313695499736927016791948997174866996138014757219378953993503758042399639116469244593593852533895094629540678529945102432095396293251200444947448182949861058371801851041903514249291976582252677420885931164763730921208831926575536127860967200086856361828889655684627737658648902932041639142699863252003570508034559250200241765913074704954610982654712826976018380811769971966522793916252911777664946287791495972222059696261826547823147326384364382425163279339641012540753419787600723644870524768902375697932608607957289253899012529346147902848373618600671834514893382536658298219614708399019261741660756106022731044295965644780442440334097172312622549915366501377511514605450399825521866395778316063814028678809284353388700542857736495324106713013349885563652555497975362463948816704765027477715857830713930077260873255336964321925594294225724820963692333209448271445466683257917438345240553666893343241331805652106419982111355807960945272927659367227270737907415042866799512540148363313389283887141052547701563024608199522982038955226532977920482157857497767219690282296749149919741959270860068605965268073089833458115165504212490107868715884574388481584940184781275292364128123552773896886226317034571013045308102734246003039138455237995730653254398497509076909344587724133997183806904937516230408264421442865982934569499629175730351170943620952046795859261542284678860718129490829286882065409366717539719317159515970081369511671256802628861230247748700910500747682658133295327785999023180567316496451298369296416861059155022850624478681644953460326886766080500895247343826128655668643235343324240547586751673914095300970829626978248869803815192358666845411389891060924826933026341353932538049938800657994636199065825565661533051234628154284712575924852421052859732632238133261342847085222106137797759099933103566516063171002230704382518100872221899196651165695270775193325302565179255748399986652341893267265735028183977913361455762289257133465517024402010033672427936056268360074874060395264812633162810792166712178071343752167078233746487480034209445848473788519151966403084564306149364226727341996334781780878702705867266897369931051830415625063241463186587651834675067561086156563005174882836306927481175876102414368086012958891698271484440238694956376929326460185362485445103655887432947441748623275568674583671006851175461969448229049514506162634940207622076353501148128008508540775353671546778766596971039337356889464390777040184866155268101433739325231289962209481675218933077228336097480154452695655538274781778643946102701902075244693958858916617349440161427325123372376951798177939196574096182006351960448457533489889408511521956442624417713811005731332481511648788610780688506059710262944935587481044871878202323697357130980302643669436545156200530494420000374725399843707894095850014340908892830196112961545082714594831760048567224094934664443979670464299931607863389534865245909876899685913294518076005408990303091701239400046735403471251297422003835188194893686622413363522243203909222252157147925139557679870953144484103500850910242708450888713757040760918303040473290814114524711683916141260774465841014397461054532070851246351707976923202128881317876137052299704191650571806995332925439440626529715814772792255139054354508228954874622643092096641974926072796807405223259761337628650530750072262385362767059584077155634970726996502985770296636641453388848880809058788659211291266276913817601830812268561044718133923408328738109748696216697158534653653059952184461564468446767302407558380067605803760120234681705339454044709178445812283243564450828090279408042266902861173881923203545672510844313390046305396573377748577217655847849916455583506625454486612046076664859986178739646310490689772133119762776788676598581705817388005070733629327694883352506526042083045904712680789318276132545682880648823976210181705018736137815814954879227262132719376291857865010691680703413562043495032375342222488615879791189760786155946041990015798294452729446998410723105657993828329866581274964935804859458748032988018392916360346674245375925664901012224805707138077342024638200674699453533210648174060480755097977870359499261707699756814471882521321130616366863440760255473336255630193501787207361415765569698300889857708343153661895946420569363213535096534937095178103245485301781537276651982185973326274156563100800108614784353969562931804769349380823479549649073385675147101290182792535455156189845925653474899561136600992551083560552348993489301066815694456319511457489635626411140168060937740979500521985290597129203018525250481496991630024626840040185989240601352884113854731277325854847117750773390252615234345372742114051908362762408038212627638460862276630007876332153029616731595012155239927750422880159453148050454756098411460144664892341271870993466497713036061094245394313919551200562429073333300250128490980217410957215573855982223386195438034629287982039365563811018671321354141252791370351913253245311679720104949314472163504676990140308755862629485935229493908704488480445501137156593837937028203482181068544884191142938754478368926354724143547444735579952105770245214256229699208306148228341674013018012617059296828582044290345102708954263051311337970836066871158625609019555139165331201140224963309163945435549291469049375122748398816173550541006419344337921719065082775701120940823509510001221793197314890485485712026570911162188756147955220906397047929623796264445715878028030735371575328235993916659605143301432442585624683983312827152010778279807651737934326308444109450356649543726305137254080535177432458158501394278622142195812130456844174996981927655794143600676813873435435222599902814581293856840404486846716261911794475918695179579315788325747654587959797565512217115087712705545780242094989474662124797640739680592375178547139890674481151938832430147342827328923915139027217826740080800058867640403334653932898978725725247304484527683356807312268709923971849068829518619914133341511473390280721735679861886878600964417911806628919192424135103427587417939179510115385401170648814816812044386413256542486189412367520048013086082069703969155029641447502862753360770943016553064480146696185961284223346541290330387306632791276596360801692621478745703455336346728527778944971574947597535763527070207398295021704678469683212737775432985839195546046343214070223153827834838851862218605872746665432468455927133762743881419330388373756440255625803647449548356127565710806639584747093125183493790192056823222233254837799324568728490547313080999347821961437924267803104217763065709623304142155596220557503363470414697451571522265258960900827919350190717034868769067942497301761792812963243679687333976940152269559847273334302358231808838068429265112573216461992447934054753354329127398442229715731027025077449676595791587811277835094493243720473066184783507765590750985377263109578268945507555212272695901802336116179947279657673944369714384481658995051092137117309598879504870742255794030340297776266083473047047319522988199618012138846065724205268631800168328436365718222768309846698416591923346806281679787801995947444787012101800967844392688970224263813773392105520405214989482215340400693395794636232598217412003245168799898361843151060483999584225238415977912671495295605846375439703899435604920561242163780349345430032693330506243071779684420870763234359686250458868193143385848270609339840890591837548059588259765881002646264101616759270023210886627432691816377399025551467065803091950874663928760728165435753823337215884537263933592260174256158107030609326741677263321495947981511585648013457688714713314518058950622190910439046320206724686100305006659717402758673143927509408347136685814469597744359133289052233679673425529327759115914823589187688691874087738990347543667941785659117477611656470169096749212831420467118160542873552638103847452944560404523149052338847701952205684270049167254042221264820056101445650549669754594977319553487818035422505504938092571369364927346978018271844806431361939796522853156471941098687198078463095248089298766604394531971421284170897093333659404696254935928008417250387445290264592125386560035833736136548178209712830593311793314577767319460803413262220746563505770994570193958391701520685620397740245537462437867161494098905858838591860183735764467346341180143891754283458073114055438668148569575401974481518233416471960899212637932369451549590634360292339375803175373749358435285847587425599886195871639636213924555844855141458707167905755931764798523246094885328905724458638807292011294132065252466500144757886096749160223756295039121395587652157951657167580394664462949290684731945885178670013485770988463892689834617517950154972692018923580749492934647861237420812328887077136850271319904520797731882434424080584103620820349325514007459219833961119191626505152948258272290875134390643939999839595164907341959793903791352766223633412173561208032457000197179113097922744708248863395200619173951575597351781986805330898234422866322116759303489709854685762875903686251222709133845674578044219011410172400856464504848034718065043663450982737099355289298557295849024737726134562940350020553502839941328984350279521544655512481855472688488805375074321132037166333610830592590482542188145698212530326212286209979984141556508958296660411735094803593825777653841921205368295517652016409488203788906871077176193866988389402447993719937354539150637578286043308001747793342002294756893943663408480237089488914496346246020082924683233671854170722793163645563732770097373404413771401935595406230540745831337641743250147805164738809897683675788900055375303583428882638000309000357433372552159126421796156571195414907858165485139629786570517374853858197170653386913580675025946062736749137958176516767936435722881844686445048254508464133443325960721469236876530737424776343902939905775227727046238798285008156122156171244865225505826482885739987468079743314296173211489977804603598350197220420672832588620496410395474562034189181293055329622042929293720626937096826693751678746817414927653405208090386443858317651421668769543720540188696177059725254111320437010493299444102598321559549290585684086488666030658628314294131835620514446743530802392860900208230357102664691876278219708301700095580165677169661149421495555174032621298742719076907970473968888339411898276151797834697514568229521557180168619363405407510571757325638803572428536875713841523727266360188524055779583388505356258008422017170859566062316034863075807847436241878852951696880128817407627379600775649971634139894637118433053239331655964962151375425169764304442470359950069852094148404694235298812525370903380395139204732546735002318167479262447451143230741739208092291135457040095358726727118234178754424158222899369026066297805632112480204308478416166047627766723060558552234233355888047478247618022523066605062599276293760431553293945469321306858773075499778886676160371542516279168512798165524821286648536051547837574790535715060052533923488731466205950844883627829649491948021592738485883327744029402482561199050366582229105896143662282185583188804155629662040952414234322961334966466170067365684435625417129995403699714300922776345658332051723817853494168329811566103387958795937700697373460762861278511980083816604253317008972925191005443154673223261129462429886534647988341126908114537590687779294045569379997810427459843933634197686777164474208975449261254551151498904979419512636612240126301530544336303245526689047141346564629366695651372891684729404197043128794905467106787257972753124986885078182033031933874977041581519563418594041858083738232032355232156096665391858152611366688432212160456656856797100300028765987834305728962296406846969716564844130478025787907768987039537576335281148055292115627952159246663356917909222274199869761560056942205365768712586130841303385439803206290888240446348181727685947025362506492983580739230160897717191359164439163287428143331219334423486157764894948372008546384250149074112414718878054793948252276442793105196982100823107625125388973702748703817253255806110330508886695607734775617452538725697775262053775599784317569818938098046149229175503128887212655303653539622333834746961589377792907873148855306332851604614439169576493283240632478934676764146892609161506127534286692799677675853541227142028580595812443367719221936285888047578275804136858652661602753016600303733121053704766580469795099280216010752486532800294344505864724237040457635993918183711329159745322999178236688476956937755400444684398873242335252796111462219422320206474395437792900784543341824041760049320635470962078630668939954811193491583199535039647615937008556029223112284065787744564558822918299998908329147966074064086265611533183975674875419552371083561778027480278245901910633612548988762058543679875598538420995924568834172033601886894984830363792017461663234536540144935929280113290327654293233920800439893151078672216094093046361415842530294586759101155237263688518446507799587638387905239795644200987565126675608962236252882272305269598733773734516098215161921047895229115447594550525143206940189267510188179683801217278586664325571865282001456485414229068243944541526318827097582484747303268991318176257571039826736204604496133755221799860320645437473027262633207098588569992389477100774686844725114065948383400415301393569582491553020345425616986160913885955765015238718303222470258067020803176662138233311698029130290671768235568556306921698773602140468944404878462848464137463881626666685255708306398379622456118653462950163630675198280857630903304925021045284802270177525952033734035940516737908347701479814649893017064707284182282994144306883284125890322195280294468778470759005101593109463590389984444372569285378313503675074073233920342028905851238707687595236930313520378939422920479354474415495003360698867440611153314270379186648599013703445656270277352367769463049722003590365702353787477274369140173435201232220900629003868673797509947452726151134564849682636152319060099680594947478725981309934811281124194322236646420265748415054497927691433920276411872829993643838179316981911502993296267194386876985037847069828712908694204826107041371161175755839291680028442802351223137031789808444052376990493964595661266623404001817765623695022714553972817691680345242113217564020904080402875381668695310532405680945021628374858744337270581210139375532468606091609744940919168155036515032450143420970900782798505910863768468113742326474106127459860571584555506375263898533088071903919145906084655233060439159451243135776217990360816886327011939544939338517991453505025227651336571773734713778418295751450537493481418932773042169143810210819090061742585321858946444033429163589364185160877082884413817876297651821801385361145100563088269310312923931870641304153005478618314240321211270408153214979338677679128430679486247376249945147948608647212624718237361533335540322151103294084840711297421968032323620205202932477357398690329904403184368430598757988286656396037993582571371329443355347809351625960987827762072383988663686493711624054751925503526944306724820476977802912323824800646600294668016135095504283239915847665153829757055553550384358882173128834198038149405707297448718011985770912521736321075967181552735978311243737818432986788417779236096952359337861092123469743654394096092859438997359263320980622844327357936061957974152028123122182798310166426457580667589192469546087530792503619748043464527593612622146338840874228441520492505984361821617121351279803410645259390364786277252528906974949812937306434011496275794298102186581031314225286420500341232138856234038609356950185977240483962051769106658557149900215171793257405768973090613170811419497883135475229034576157801363339814357898256662994287548592124142564834743419950966615473876637313947100400253305321615622766048119962710261674459516637355792969728666709367777109829789565855291724543723414569774669971484246087094228174530469498960603505013848185662647130281517110792724918918846299898139780457816025477086088552133738609412929468594910831554650886207349572997154570653771413048711738869887677591599993611817699687115503245811259145787248935352242717720980916020401477358318414007956490112132718275693976237001310826657733962368625670086321753518249211889319245272413175400164406772327135222679020563780769028687518140787541100123294116962132837314294648142062732172970029891561817540711690659107401622517678289839940091917616904439879987967864394733199535001559162527079461879908564798333039148764806514999907328130169095142134996375352896665953004056547834206930284194430054565391340442266428156313583458507228240150975245384249789942987441093699327082526439440569925108962269527936440901804979211848331761550426090658384249493325770951118049294213388358072059880133782940182072418069861542937479157424753213558687979678468138091685977059406084021300218685074426144265600673630713154811393749574616145274185999052239786471308661483465432738281262022663975988252569046757075230095725976888535487975798868765656030106909726513597006942232366494218893887658469728334235352371793395316722813911677614538416283488301223879361524733828290550431430931949472054352886479560021496754812147625919632731289930731029488292116622368863139560345753834250190130824227302139298909733904165578622810522122689007736383952805372818045300598207237435349840126411764313191761419656847598899390562220661333677817714517289136027757118758376316321924863725133513500012405021450444971015456203727133155189425021229000883390810629972040092938261961513769523313246445629611537652725988057470043352930935274678213261297198870926612732333717773706064562085512520402543402537307539057231364905861684487299183225155047723420529465867488058773695034791559332124920795813138794226775589124138275380569491565791084335583668424507953856890578285574907489217816989449722815935099374900878054201853965188317120831045263736558471311466406409965106072682215248430257720368371855814799710764552297838792541107995685702876563568681167735808964960074599667318616178003311052220013940690560555525199177261920637325325497020160801359003195448607912741122637803530637964567946978887096801610494774210236936242944394538801558120275281596803760319688321836459640986796650709014278535298006858865638097670128867809518164983175287668510250264718544875098183836653950798660986248654398836758455932390868479723278285941659411115945507093826560486535941829607050354468004938414469806676367858749157105759606469588842438643812858822182693872777082511861096939463718887557203264660976334637776459849320274701387170525944535977697510724529200296207042440426707023818204456722846887627298469299068379744900086196904312059150839294677203650917814278643697044622948760503565309518664432663637686373218207135171515331297097321500178408001449204651727771945833220427076068175019940436518948454157063889452380251392800676315652846942946552451894135903298612331964218120203571005831383888920412229710314026032578551653551273584959304030298264767567993707094423877410297869706149589272502973098353975105727459453010266182290075880293451694856460503460103514293079309345661360399301783616097875056904997735513550876833820815467280321152600825129001160516570662278736717977470266653157406530398942684770867435161243611140153825900280335194290009506580862345469272615875990872097210589296653357021516922381340250279675120599366002550424726335525111681167199283069275520589860381198274423543944907530275218144668079370323314975252132500814642907399872791230143322472618886225283489881461340444270504422778452775633698134937639799907328878858966626106619075575172556047559508060190274907471170751935670122432368836797102984544639590259400821422181392239636198674121278109781619332853376926902615309254642917672732451249661681041870549141940657922725022704367762603471846025300735071581771838191201045956881612129590469715808687275915915383871525231470515897410298127198571861239025275670726741049859477898904877880340609424169124321503408749320978312709421323774846202018193871123845375659603829863804434854247428125984795295331243509108497774234446539551556079234437327038177645454844540303209323549095001067798593809580700808949359765118923279898063848007576337976003688122614405570215549389023913266812889749721034751707787096183696424458955207785263354897863391335223251239997226858666092560926097587791301776238152716140680680878537415168177038522792981515443721577040798845918109587970917425464460954682616320127597191169759829887773056988310257135903277501808906088825244578530938752643913251705396072578789530537346305589046424281200125804324356455236813235292846302245976498394664589857185898725061895831318253075751609891672830979694265251842375183586611627333910022544252115283493387815749633811504391230258759180824346487245080879496444964056926428371558696996323872867434955553987534477251671599597962325136444094830299576971145696955370147705052418304367705442872836513494337528555736389997780500450283988090086421014611130204647176055979912563695055939060094344867960277603884626484388921050967804544519998074913694253691089623089494798264605212970747729077525368545185967322462827792814809162720663431821075942468748022543179767173548189451844625442168404813246977102358166060459773190105699282904020077239297180751807875040361787931297136007782776632139821876749736516378252796563873211056813549270261064773868291282270214924665414264227696837425617004516337349281011390847191287131606521240027414044524911663038363146870180568608321553289874362304653485248778804824926234377459554612791540094118910926869481454899025791562984048223132898264958708408972912012711730021743568593799640918580169823209282074522213335697764620331654719291797627911794209542477747248670885792443580308304821804721874910139760487235748969569144267472326144953406226039805629768781890041458318451629363910666083764277066718309530269396983322802831379486226594760862076900602005536618039159824170100947271689488441232652474586641371644617615991559506460192364219011963908710802774943061428080278144623538523754895297549289411555580790822166179820361734775667460213952828612909483439797858494805973586588125851587539480985954317177413501698692165920721814098625665668401347365855293460722799327187466191539395667399931800239636038696684327090904465788812589906385370734404685733452121848667296753329699053270331268705396727387222829783482526619831967627950447367317584447780531843312634225758176471733125873435606928064685885617870256996536515637568636551465206650020416071840887303551049983877240185122276844318490786155683983204352674554159854920451843344171403191048566329764679330952063242644631149075383939686955711093075046480741788880790298015732941473178825231542535746148229737653751835995577097219773389202907151325210233988747583973730851871734834415822821211714799597882651308731160519614544268694022970066233377944877817332699263319193931744876021143686260682934446282308833456523825583115303333493158102890629947736279981449941923172815746153274161374076706891511656708948757615354062242450904254516067281743101779631193205498274866470869500019714898944613045336810737220807671830534354593108678530548080904575463268541242969493828127757406617274191456586083179452375395183128179401125135910741244677038001737874702484862482643812259877593117518718469144678426324329087720457353307703972074913835260677166641893486881588580299239796399934720244581562049109178340454570990210991765630482351354876255670678148995937777801791907065514885788498648536094058509330406840573407184417930133196792081655530310793155046979925315056680346149199979432849460424109897412075086941765629322505021068658673755861382001958770739235633214959228136441686582149522454535628020780890198061149987856989625404534623507634019780708272738919562477271101824373256640571611219582476883478174550975014207489683546660733203980889604442400755197828134432909894837708408111973386925315916702796407828902330049655043424723193512027672380058583874851324768924827952151647997929187424628158800538452798309522120561292096947667400401890873838346878725208682981951857140140906452665746367383538649671514076923745188187045618175077779160467364262364812915250274548032514369509430535234724743191711286341015429407190777880135761962400854670988884018837487643907497929591241794295552133598722639077755295268578820761343111811481645476246965177390260519286316607881454436067355956050637213689067288137773830285261239850941671982294282497884965766066985950996736289606015526158931293542525944983619778630348160301292921793099489108257508993152270067864460675285711968069769572268091309978336141105659531206494649947919992461127373641953186474540491299350839713981943386260252455517213303202394759552086315464312070118589438468409764346875023601883677738215168065250244294711022189237742458788035233704448261662149487206025950118791151940001384574166228651231541718176264441106642412942581512647278623588329505347240502028546345868125548752652041044623884741761252842436310339018548785953374615482783983889044361065759634868384682303277220697160442106942499255209327565298236854516317377853675719739275342289762855423704813249507181517173538048898192326995600872939577017638128099214951488661498380166439950886984310083741411037149992112478944589884901171811920477735608411674569790150581347473361832843991910018319202486476487276554013598947274878074510445760635529236395169244313940415114692756622145636880177188733301063832784751920587464281890508668356148391140788264507358261434330613203676673378383680751951267755600970894071025238820991989527019880808616194860545735718229729418602911798805143588230972044235215148140462319339397006379048236536892185116641706947740611712348155624560928206174593020330715857983027516833490438311880702924059426691461238792614077443943270628762920158613210917109207231537440900083889014885494702139242127585181615520412145960523379417536894607433501256585572688894274124575644712910521845056986620977481802891200146411101062823584448915460754058831362798498421307176541762445960558266641292594434111086977911148796933625342520102209194459893885525360960924673443434458183856426200412115693198872522325751045833154612918858547168766001901176667053585255351162030775000093266758129417732542298025552057561916547378810133615838470485475866356720240439076397466456059318744693596824296595878992406892893931699211586401397899982661840579447916529309554677173468609193868157577164415754490747232555613150017145302605702085123685206895234346646086085113742623320925054583432363086918381497985529810898202263233300721620845936321090568661575366978985739544519774318769693081706044489284709244735536180288534055623443568211602260910666331829695380525590634596149297992587505574561377669444256269827328311955977453576374962148584712976448359721329761118840617593382090420924924208374245252854480709045189223752649931629745287596045923966521850505882986231052672783112601201106852151580225342293358028147291815281219044357077385851083975673129120022863320417326374917030688362465960627666572130258488917510331920668604177818537057506809227130744332209672088693262665661590862486685484634121320315350277869350697164598775100880122803516537239308263335852220918566325685795394036637072275221161219694453527371614004676786867878019647729416657782842110397805217914904568585332504746493006666247203044246647022079766083891025513336618384046390398783506864223847538178755609707111340423343307729347756674519872952089690634430624064081437261583757443721110644837536824211271078731505100733019139592027959502572084805690028705312480073544847028201103946418510038777284627245757071973822391127284474175944328655933176840828150461703522104984490376357615566730357609022414690667370938962790349648066707306722916670617281216084096448945755513772559911781799064168390526152151417272504672956450973391446341230798533999973730595648231910745473111530930109321707116742287102677419855510324406103876456859439379540295211373078028458632714943958165604867340085704071684432180193899526410147235427637464860004250027088889300215370128570700582065853701694051320315697224433994212270498802771676577103730260691314324572812787077088999183219604308357833581354563137982351504179235082018655999301106935399148789354439828661763301501857132400257143886028336350223749723602452252938035748144233798191814639281268735926512090129442525757819561421078782235593050096964954829779724896184162779951870609936264370385735884838616578585110140025115163695235798267704784349355678024028495674109309816769918254718650776996708883159010434131004684208249957010070752202020202763819809447123952957357140579752078775814983560881755376814560856518188118293581417426825196024192162510850440025983396770721772848647512140036141642827730759926648591542139089000530992634776739903754877746850439479184638987269463025240050368481783036861649194798610986285264333147349988161449134481055592080483678793674783758512108040680134486564515416044921856723922041604658493310113924492548206424855736811782946784443630229733111027900142906673424497227434631594574901647584880793062781478941307446188467799345879742328378846337171927478107963836110153602635976202178555203443851305072164603420177013682530966918752526044167212612676047202855556247283592034332229715817858957146222220070682558714308852300289600199868666496065266840594597996519360439488548404594194172396366334255613849264889743628372489415973091751102108503181879104425447923430024055885762467112952290654239891729383046029645945634437771280056293031501210266374354634006539735561606416796783183255069679862784838753261323977798309737679498344047046193348195576326119649194415048112664730872585427468490903689184352120450723347203017418674793433518308080333415019387691226629429664369369013073980233167069790051113607205868517149870700533516464407426348880030006159022366302880709090493838580977728267333854592040406416632311860067225068066908058703037912682010416869108776587201622458239282748727446676395079686945670806450918322153266709127094188776874155728630305056378161751519438511831118130031145807254287226659923217793505726779347760507997492975927055018980034469192940204490067015341487468504720326429172307084831848791643695845639512835495863051639446807877438334854624063521137250141290931418103959725226529060963822443896242952650160617185623601434460970447442307504176197118845041123244494909394280773580877239827706692209511732984303916178231158135508116704107347308045749997851006393119324453004753330279272843827879986957882780339152538846848328689684421584591755124966410940033368990046945650656518074186196260417430314837752541701734328081692935342709138678196614693393821233801853794170605548282012935275714057979378600646911451059761238978038626812762588595907461798202935115427561019842714830042010036010467944662629729307638742686749803453114843160835238418751037971814988759260125450983482113583608703884164918092016308587529152403337639120297447965517037718600830193236716491173745799088943582800040921925351579694170183664035206140470386204698255986259417760817802502384409090449624102491622533865876659163709205268932020084976128946702355267274541949188859808852000877213636047851743210029753142792562553249111506599031233515225682115908693047686915139174792133174579777543279073409078443015481707751805219375444812512105017182359605730693855945502619871672733605070119010424178639647457823405981581765913006840705924614534074872791848104986071956601772233750622157778888409254186461607117413101852199307257372688796709081417322534734338462736901649589615995592220281757946067693001926995015198279171327343039286074991788428045406887678150707358711276882351285112409889962064363020642542068506239910362395534512400971418904900255923865284372279978256297356613061329177295037548971114426743214945195472956119183349250570320549368304319674482912783345763412562319232554839240591437249458107533514003550785762971529581282092996745061636931166893405938312432701355601604546116465584374575633134641828588001806306821763411046537685604367375502254131684576259838437340291448378700190160791636815759235708640370386096417560603532845541284978647053913155477235962316790623894045360403953768172910881973347305667109707765873287855640837788551274354514001141124655150195137811580487102198103195439020879049033377320414502056137587603587632157171226465443311548524539279835031613776267800859545526948116471653787519273777845177820309410604784043025281212588459774179041325314342191075921846162495929138416786853207805932662970642941034762611584432356755464325609220735260224347031557625110669589892384399532027909429043912611980312490943161682379606455626849016317839228959014007037435342324085901996113096724126289999573523717363859082339238286542086009630369230939025656654835312243466270894357266324685301098418467032237866236671881891666482315508976899182145480592409089591387224363917082530809339224582470280838301448719881952883979134528815614933679318337543818659086764270522588287609846664149831415914637557484701260099930800719864912123881273770111697256992130285732673408537915875242882881557264189046850548448510125027924911434927670592493926546791763246058579487655585532526442622243535824310739524373612979209405596418070388358332439743138294823526116009656340145348714474354248848304254861001213109587172964485550368128637984653848919922082981153175585572146274487154284897137602263015686122200944271276467998156230385533349619343032741053272890445787802532601640598981973180534233968287841795483875368320535472905686903312844916327870619771122461274062407636120408079678519288698549031915022786804646794707667881567481698493257310360440519091644805698038906058156992052204095069361464236970890123316552093136404318771521531099194842490266023864639129211727666914683082188115125218683972810587508577422924269237845570280555280554607033456506498627971837346060233257152666690849809605035424822400449187059865507775060033817838341345612565481440473140819534028120520183354145294709342654945025478067532691997055405099557751637780963145440390178022317699192666023904732007330530820315278942862443654193649666442843805757993869231476875594949751669285155402292585557031898422599972137566449306806269190343381050521327410017982046635125068814003996682932761730450224542826968040535113113018103795690559721365933771644314946615215105103237405579027093730744485055867548260693217664250993653788045847481264045450407158298056451697579793070258675675069534317501186891848411625702575438755093855021370895353217770951754967687048418305828951412238223668281717209033173055554919428361947625669471428409537815947712261899143980357882194171859698533079904290487172159728712193806343602029662174016705199062940815194045706359711701475221786957862700337623771092860177076856680790599698643001465299354541610450331030767201223956691709103315505661077527628644047731591044941535159007385103299066714183097965775925912769640138864174782787205083678363659185728384623215881963297085630186138842077192542106891585421500270332307750449711550398332812087343907562134797007353266046956938321077242726384731298093145183667122056163749275436398633867930748438141072644811254357634733218401891875013293046995546846600950577029441222528164180945141283210724751516982042378477604606017087752091482891639471051749011408518575737321711603879527654692666575984875105538706603628684420512926895128930221294819673250717395596127352525727486870299056869244014620478760835490035763357300713566635061024958892193023515662842282698426053586065284311578209986181790509289247647140757032225896374382518603058821205616468250093180926329656302260757587946857804204075302793036690699200753961994327124681399334347362944846858306116205460480588861607850437728442979567717483256539072232577161935519821699556469006405738361263121378989870349113557763066721621095250072881533077864259583603592692045625994159834594014541217740578342756303111977580537628917510144428417466178578678079227340786563800585544449543327281077130363136544188557062727096473787621687143684869433166689808566540942926205937757662273619952815693097372145686954595317590296693405729544740273766592499568579878154177841055190285053316269264003615544984185203399096805964267240594028187972040613055578682518334322893874801233518639172082898228249937651042167554359472811973266664824973655061999030814102944869054186930201704092468358725249554805806466706496838914365445319037412295475507124565673175055967285350724810506037756104065939645254491275343274323661868511046935530508854851042596280938653094642815685786844889883275718461212442207082066988962894736505016238980261698172599614362203861201903054331186896770479884226542576995523302795119255289236838384453948992441712612042261398659055964936755486495311581628073928083400368889479714147636763950801721691393206451480673444648285784407353119479885933132471104007515894232949358092047290415603500618409468095439951615972792439157138512826508784459834573110006168623002240283861301981563545504960796742124943502925650724609302670445752371188107284226310573856101251571169761761779168315412186402516794128539962501233284286392012649680771335010418859195237460656124975485863248928098523315178062422356084144649710446999384834833185179370186768833017096576284665945544893441657979243397176805860555078087844119706522764859629547554224544809554656766931685614500217187325936229883285043158042172954323592890348994634953822355767427290412267875638715177810632806770126988520384243948723981911727568472365609783355952745692980944636793798761581107489251619705030829176997143968640426393318359668264745500417578693525476616416656153501566452536775253015512763419018750314095458072222071805129650493100496141608038781730657833450803014298552556060993723559178736871610859145078896233389193989447405129275844592896695079710291967053809128147125629714483769226233613499280092638381170998611832740336400015411497643594014796608750917760602777710253264978960946393551520868761859530540212686737734541298833008199573597362583453505726726304464995272590439626499391160359745233368491682239343984411521481361743112620155127424397841789208791985222770823995695243182630316997099796814767303923428812740086730365260931788861091704220802372793241147906752399756086045011745239544232280921875441237287275259295893520517006343923790254815433530659312977418319185242765094697859537002517673781350373949555342446307575267967152823874223202599113465120921392554719159883738181397013497353465889535493346286366861625888463633208905934736153413615381538133789632674957239295962713529586182995784525101173783870843484540190399284184057353502418310193504836651582051176971486167813397104734626951543760832155599533161517101808618839924246691655688199084391288125124961673665293232598765234282247022984332543285765115169142230763939199869233692012024254186260520618295576949269026671692194259838785235313892330815959425620924811448412445139540933795745211435279862160728950381466483274716094890756484962008937404973903348304187978334621335851987034340057123441541724192572416696901705021137911714709994436774468403984223552474044257078465683834139230188092217761831122767444808360053938427126489924363506447125317008526477671980517069438765356553223083970190043647002232910038850758079620157000363085060145203689868493261785249230313782349499657520949230029121118558882574844046952497508515701021873654101042113271866647462566817493222933656983416275079187150141419172880111149361279082147049559973109449163684250975485904506281220364281580401680665933775426335347051571158283182868908635379110725754692943428423389966749360815849299723394362858135986701988136512867715871037033702063654025284128630140491509716511783501741840261760654426213511375293618329363433778238196602580093411683926793624736667499878877292137094957301199512569372978323625976990186279949782117429555678803147213181708215711254221824247543276054714031673098453158597834843116188910622722200725318710529899235322945760756366577086314266177204341581603915968560021746868531371662493968643611721816268288258554621250320388500006631710419533303895169198213978274446639134486478512690294960524424980800537884896652255347038840658712375829780641222946836765139673238903963494766631245483930085704222915796759717391386940220826114678653079333295613279474535163681173910004967133253873167363397419742354400116151480814890811100283263203756143159638121962038312778526686231171189252314470900751028947606414274572927552938609360839572475375855137667404292906152074871470549982655660279491102554961409186109818754775591421692131931811833802532075602240840511120987052039734921053047662202109531785084934673797816442801684400435164111148758747417987648029623190207418139934270664917156758882865425790964177286476286516783356831720321399213364533416578082857973055155567864867420658075184447158364074793916733216862362663387169494073224876066575329802321610345865234781357033173367246984595691275565401456420590291842695222679456383122550624428427864577870639270737166733091629264576224340226872770826125939684261744598465685952704664528567440208714696755747244360654691469437998691619866785915414723441862298812835371972702943083697707295807423689904786603028474637306473916254895677499095287934571931033356972156197813435206708652702889596576020927872281775740493728158055050433197005108864514965753169693261412312911994728178019724005600742176305427696091009089733960455326693553682401382588577554045312026236321268653390548195611498780755689161595106756624188747449829329671281605747953731537528334415958929179757558609933419873274136255069182790941970127459332584118068361172797072143466378632389154469152528175464349702091045356458323695440868819680394653557284743156458913886398558012341723459580654687402445348450442926677133564374666841872966842015058662674963427713879080752689860894040829203161397533793766844573613811270130789676968116700464586271193903050123752275377620246679269551923051177723942896629507948967701284498197623486433709589555561351175561938415286300537344259654483331209334411632591526460370478134460026448312193328892234652412735164891144836308245462592617649415307063714415183798320438779397719442838520049319605934784630308213852488352087008894807553055564567348205564647071770239129999128917578892646572863426062215428161626777635745164952360586607739358783299570232189662277943849678014033765102006613554129144334036567609831440248964053268403982571698997598924485401740456958157414925513367458002006789578055006337997860394599956168097465094325907391943489979687718946955427112231325001389327380137217635588027387376602268718811616273620902260033788707355864158858115497961734857226622712338896997942078466750683692460638764787464526816291855655688089361394681951834198994417498705914907881299789821670020954072317708203956294900977467310073062152555320569380391871000891075017179123592515947767097912496216375826412163344357297023227614591185010061793225542799540896647879185535579773239369974467693620424627213118494910603052096591948125617361349762284309901801648323405089585945152594601876928840909976887999469947463595070387895853988794737237166604518610013195898075002786645256760184821242329872327517245484199715751479416319698974976310051552343714669944609656792179623280297447939641569021518699757272710827012324154068516013093976426534014702309691714245116831292440650573085581816364630147341940341150989007323971532716655830797592985073478771046659999789593538670398114091045022679173795506898554889526218465235529223896850570796821315500923951868363994635308825396257377960924423540437010218442167075239652412104922556999845428026746495994724076563316519987078050318942061081341844813319690496922633365014159661460424973667870960981594547463819575483610232025680398964756999532461942628149365303655204726011465455073963236505392195699936434673398204809324576136051259340848637148709881416405363378365933262507323426928474629051057819885452842895763638809951104654056321906569365439931974032981924519240404290117444353075971151538596444156096898800431195969970868638038040219345479314659164969374074018942174681196634245542025987968111095585889752103094904582296479699474884490023476287924371561442664831763867965474413741054479964547466635429396186452056129545860718505562270881155451870130495939542848642121685394926515224951693936891798089795507945758048310230607510058973426978943989471858980579273864037596226141911757586849726381457340150748707258868095446979509303480171822546918356913036535457673885447194562979118697432686940764970373667460295506800377846445940444131994310165228512139772540781236731173785127906923021692484857242876354085036140612078959570719489543614031594495122574828575500541369589877349864174541255385532777228630482097656055440419115867304086540947239596133111204159284447941140849055801121692767009631800202078569391129089389456301332097278459786096548031864548115114187178748359805786474040375203513079863467237241011837814317854748600869294553152030780124083066083535452046865300934461440698202719988680743854362981148818223930084969859952128256869236621567756330974911019755140705422626202792269595721529149991521889111544068341325931228982907237424870214488245567803008699106643739469381044902004883688710220476200044065395768023416010686965689345402649530218833538610266507071485548256473867264706827686869564567434077934258395552305471305846986936693378518938090274640469233126447760572767443226992253167025913257354285596917625258113691034751037347568705159262812049508829192718214783841181468876548713504222578546973248311474790096802908642068096245647256941734248097933588116818647098818800302265075248100287674050112977886481193326211148435802189212844619608844614705703165203245817562882427788938483259834790982088769451758238361393634567538759317907914283570519717253500935487130455277188971580302659459419761124474008599043996419310380720084147564881549606069134779654705318310690136291255038924446696546088995187142032224773213112075556886192254682163402878383169514988544720816405530762972525257228256233507273942882286303960666825755462301479370420768831578331759901077466598746512227910840146409281196626861099240837076817419467204172265056388387521283174211139324763759696276281454552058034047149922175487617828667166760274626560409720707955736764713068415566584117206666393711417868668610376751974342627469721123796392608601129164841435282771900471156052464638168881106282059970330322700760098738778094568522363825407040526366510664381669152368136137511216098397916277816317320297499309741516367554651269166897344564803880029477193396917422808853189218463836283790665718460678327231563596695565347115197459561007336525334468656122403583498467246284876148379597890444362638665294419630831666569680354955811218323897386447565341281549069815992435453197256649611183974388053314971400688335117756961475145137117261396057356178257139873215994315608807307945732085104566922881354535341608051130296990378796876032845960165095061402223307624840300187442173103693676128979065289345348189205124969551345178275500721723241619956236405490323140885625040173444605544938801900438846575682047923939493392013375461324162889360024745029187356824753793244971157549728309277581119051324349902546746105401120740774529568690222021029809829875598851396429864980231059821767720618593311741606197313938064709507024348743859547841931959729757889609748752093021962449867525693987430638044950069972861852452331564843179950204855570783387236049124913192098997303295120520318979369957475532568129350277223605073337154208108247551266399535154994979390121441239423759482929468597058126510977442200219537922824049253775960525362530614026799623326904167106579151699984168221379071316153314311819040193909027822154923633572607105761135776386300111136469555574205652778872251483725823147576413570927567445155585079122514237424899231463763460511509016743733001969865576418995334826088842148290000938600383750284654539665692813156758647147400159206859595518283080568788353506583167511270482492477727731748067732590984500675207656596653981511957750336299287839660324178497125904876015024021085559740783723508090285102145228026879492044431227029901016048403061441793153582511442346553148918493206380822398513152803209273769929809937844438678911594691690750939821784251854781242972581857350887251370883960667448286425876112314701544759754499698777402224282885456691600548001131882375641274859327799668607652001180066312597247759399297962063529484666994647109964779270720711966626137963934262661328377161561293711231147428650032415985769267395722201976803230818132374835464416587761250788022059011245117595757410171635832056647451026148631640115703547403516140008754654709860911860069688268516548755654090878576245456967872534578332330584759515585981342368979354585804205124561734841046062495899306648849262801824190995652812990469149659613305945495891117347041771482406551051176791293702778520064687701358433241528672443819649690794089886391879761544619622786001273017423619834963894554255603553328056448897166808296317385390511133924907970264915995754125687691455896610524480144384003190290463802660636624828386416475264624274111182428936224035355890126424283106487285465592319038979886116059625431168303964442991527621500714341095961277330451803993765956126436625506683562850135704525739904225332827861224138105132252120325321489760107511588219434101325372064080174618864416343008105695459394080570502613486627253902737864130605678149061240185413278481617010008147493817464222102345545825492734381943088945716268777111769251143409111258014165983023854506497880338015470475198332034060884472556197551459586202033355219180881939559223520182963051842077166939989665382371087567732196169337653964519095149480873142136542275186167855453006609934961134228531923012146503493322110677626315352526978322346510631909041148031923964088157489869378579710800633387029384855815197162471861281287989256304375944717036429098572450637599190367321978185501685657830371494723739949942352736738731409271179783164758850397019067841776579658938261727674423327668444140029529442537590832612139522297163326045987144096752918299577777556395445893214004015277963445880793157108654957457774689603356533062959576525170751524793810140535738076020134099172878040185945070153207485252588936539719358000016504771089911973128855734815856852720712591904314099315387427415416497506032109175701736501008228579260180408315135402320623419534082820954716872311524847468354625729132555524856959516743151666519424896156999692655348968648503747088019411318210208470877751222057772043903096557578913646326767512339158226736770547212282985678971279372244392163032475085067022845465589502580742806328158366062701167997846532111692391858972415499985082113508668815145694470683989033690900533524767056164319408119914561061812382308666033693363474155005048105621690361084370193320630703341029929888059428387992151951850905979643472585727802161357644984671753877163401282949201443403906931717643261059419298256927887019581001638279224770598531068064453259209477312925406439559264060933479575642648924204237162991940846986838567082884407890067505734160153808125895855825614754057537752478343093221759182376211029504727535551505171682318463808119496019143414330310696109549483635101928898008925291274167082616128222220730801658057972460834389962641683058619761709788269126172017380512376023175046867594171130267478484046041436453134663566234551587165224724072428575890398706046578276406351473792519349170216102738407885794807521316457730616402136423481949729308839577312126791676579460410062900710541899685178312921554300605564269294254558724074223839189984847266229094039118270766521624281703766433561253189994181983783272268759540386375140999263497669942085270533947808468354914067498886333732841652285680426425823797962163610862597079822093168045615053255893874664796594294508071848566388595628135821937246626017302617087820497644433148601458382237482099864452322625391183344356981240470611502901575184474336635560346230357760394123574271049906485385826062553157227758832999626902671020967920008014984605596336326260851922171905712595393249225403634160583670158036390709606465780203470910749243165058170435424349841984740595856170692871030005661492058513629590768960992486856837672951221700828580432778069224077354419702955121026739841086256323210539422003645429525640014429772282469784689799063855170748534590389015691468723545574421540327185831506600240565184725901416288171025284867610794304837528007191598953869358555566724480732905863739248081896570702853809659189288705694442036757253839001715090106640166741336284108889276687068877442921850900409625742526959821752959252336056265539424685371414158410530249730049807079604520809326148741359712260019326479645087734084414114840088476868265630836959784331997144485916756537529295989438212376911852964753546609711443234630250326154624466458394213957960605041678730042200817190070098492854654093672699558010600114556464540450335583055969110363548434161408809893119852076178206386968903466021018822637097501559233096446085938109913619120505044467950613760239677605381016824292775685845425399599950672845754216013113668519006321917314590467118247095182990522000239764528266418919182533400432370870374512026003858281691437420115610089597321194286978244803337345130220062240358789037466768495568795984545801981160414117846381605131940218101196515407773877713029857291071300628584512071840475656563015919373054537280793450848704143973675380459051421606649395973541085132423729087291576173574900585611390601306220342116707787557494637948832286409082134191626158718008242789512977796393746033228733374580667273377565583002568672420439451604970678829804917429392183923047675406832879788876766140577496437145320334069410397595133635994439657578708011827633322134031869283519855984485945875823041708680289621911293174827287650786895680222176142991504490179037917600164895424791965472197749418005389444963270880766774536273907055511844400885169435905629449125703129065548822471550304638423786443800793065652229726948710520055043983669597365205652109401905461760264618168929947840448798115206386402465163566944957668243637435855394245031414170949995801078435741806853028244743685920745739397484489369375966739821831415246566087073199406794212393601681284856134751441278000834977785691934957777140909202673445384807460412566350397323031562573408434912970205999714603336563681766761335687815922263331248305459819175005576056058438785786701867061846017193192574337695860852081505668797325094109104185046165413435790973794683623685413243544431648797118681528657096251854190252751144366998423840223758554926548120390808114667308894593046319030626996858014832860198652883459608748045035603028829492287027915817347997791573556034213884615970712916098549305995980278444171235291603052853371166231359441375026195048800750758659526056981521343875245241934770347274675708699981911793844077076502073220257075849626073718968233590652755904612731426739157223122269212097595465043908067170058803133012099065892021474775887155386961449918318881210796347658102751674888588869843566261414010428313878685578340253541806610425354733810783157112067604437388307053792777023445458974371099857165767340798721250938493066808283475689394920057123628205895232643826303393657964133740554427612032238452055882323514377074307932401874473876911983986332226616929290787275989574429109094279350570891344984419145397054600556355523151556067838591748003169915138368658636155977857364687962115871683418798781106320361362003877209281434719936576286106565205461196015781061711814895552648700242574228190337617914262133931060974931091557848946274024375981238177857792798319559093949399022233998295416452188679495431288531993985591503192626126736220139496520950343839582848464608501578361532257353324798223596707698587818840900185736530305880503979471822143838617590723821470512766438987879580164801068623673653792586530636248123704641681483739383198096939281373348524830988066078829064493707716583202254364852592942252174815072187745495066928938963446023751180570643247950715044183997816434780230978342998691613298997191991805168442510648785368202592181354786324452625429383597093195609765856975582483348076721463888096109364517334878206308480398405346029527690612998082189258966070900800325461159338318818560623272063223272087888186328305797540935890877527972583407318867542616879059601379995042034314550722898083040152336413272619276958879111269805299731306416875925814489740398050484576517976462958091548898448935165822296047222300892157891577920753096685474179548660682805343195142028635922333147380887354740225984435011657369154378568909350965984934942435531702291483505926374342558929020799135493984144558170124470185435563998589709400549224360377709544590327485457549884558337154993856674128906889528555784123150237905030876218311642056798263642337526635278431064645417057139406648992742202216378019233808184417984214990571590297077509926967731328904590094475647358968951485679321293007808406660270559238372958169851172554834450750369028788547777364766514721683960624184780913454127720458626507162101518540583317093441710820414976670604756942950904572291173302998458192223303543899578521879564289837753377045847452920183970336368288396850994691602156688960539531611487942128170376835354762232516170829138306962736038862335220932267282020147314611077045167322875166162359793397817583942647766374605128993596014412444771694539485390746976699513900166048719951687948311280350008991943298047277569286661856286822362397502359583912919765118775884963526331614723706822999500130215588846921866907101161408622660184492096945554189329698905676487200346069758205361174509627993765129904110003134287378404606303033170112455146016646828647577303574655907170168021356839471171463911457907022458291166451098278780783110545929338874766593479026890164623106441057706544951650390188882970834165922065004548184638261312380573525642994664455635381768668961684492372727969736466586864768123181878489027957732451656085977139516508785560027606784253579888125923849770739105724105809742781391794972108184346053343558654336812123797068882922582891722537009623348079784396812224902837651619134977599812740924764178885342973392248380138502179948261064308383745915608770047167681575059991998328252476505916335402344908297409640418183471707011253973028209697236925968742686774715899813225288240937328440852177477313965316674383459920514246181290112097436812136295691353988046260416607410833661270362796291063090222157157216828424438797641138155933693136962965523442338881641692016978243441451065864273799015202851319797034036468401785706881056827756868609391107171684863679366053116020236030189523342231222118989484722809904260769398912242234161025821039365539684931679418694531122987010122869337159062604470858211167006463676190264561762956293962891078357468573703510164995952240330365337846723156226587666730759061974434320926769415477453473577040153591411999007226607160745430599863393310525520677156304651969835345856517457988271645493897263678541470005956124214869787974441875177909711501682380590491133866656957104871138774552383004623880781748007209171439208628079757213390843513877969816730358995527431431059876441852701701079793016804335325031521941894088761286364257425700152757437532691028282050988366995254135455136365318255422877713563257567237289192708884967240712471606570591528789777370646522009033509666595690602290740616611635125820453437274838060700397927874296552050523359732592318598788394185488848687784661289704127418367953900748198913804851085326866965059413131066591879641440265620765394905655982407890402992568919372800305755741212023067897284019544204996625974610353113686704599899515091054285400213404390561914698841994694248907486653304279308421445405475902488622361801848596228857447844278822260790246908898235963214015195474889913504675098168618770633848622759771500714177542482517282802748608924637065599563936032552191746094992579739268091218755162233209788668272934630609913057464595511731888905765238702908210836668549790843077403064635351515874261789913875620179213250602310874579851251230565835256729984167227772827597842214120742416951319656000572092286217636701063414036203694825252464096759906505178179320928961418323637039541951774554731935263771204624862349735115491872882065616731384122408905119451845885032865268832370609311923556067589269549631549883421877917165306646141699559054848088858893981829740799262982567353228812172903666785110478881831817859781512887963521885421540004649895115829665046479404440858953648916439385324495129690270298732178481720199439044665044628894055306569190652433314043520676713961278071941210357098007021903222747172368075787797601678726051861908035117373110271557112676957063294908221808689325439956969219567679159023203692356768519192086725285146509071618296115245961198243577233843020271383333435272354241977116712742234391137143439627225187535544742529546192118095510720405395087263398674868080650800701576597808946910366330174930477173998402839802888668569976713614106104033352738422370629257187281841606640290166933061167743705297548991092475564369929332400175289962321834383120592786767815415285770646432008057907446481438352127039713044717617852013544081547795360182487548399529698181243952030138439265102449614324596659885609505190180544778407348939284191599035842918471987028304543488786561374825757455621326688447399372414446069935963935941728721236576456735530306555442004159983871641930917659489692842544564459476410770759318901906425632882629757299338191191459627637370928044947803569520983408547379574529462939333149393010768271483416460219048262798341674096065075711100316949503567134615980829743967427901589984439867651724677016792345750547947685845264112405912207532477145316295858194389965300255099992458466460608627703634304937484186401598845506761554432285675315957262183305272056271250609228737427572734865246138716363014148686438878846626547745798820919178248988801725495117966208790724709046516507733271652132205224535282234724504338517668827932858840248085210214558565310451697134910759753935787040664417888601519487706695043158984527366757742614058535921459687993674575688021519805204054918981612783707353381242823348758441667179352189703834445678786617991768598939779436078086937679028297333721843327368764667400724271427615867851197829420815125279514249133338407252676616493983092735655333495352422509700391224596485506265696862201200720460748361451367584507455493195070420261354254559423261735389107687715023052558929001380005060239577699004054339751553768383496441948779710250054699294318787159982307127557554626742772611206853673728421206773976631238938633188325098265257279957848229057905206696719633626259423916764144932913125523125386846736262044953201638110445696931321411456746471729657064785106782423404313737424429953535860028752878072760028858535971499905871798120550407897676199726202976225793142290544238317903001776250376126376122229941908493406258149479555492800589173936882365567211315280076467374232217865632320094973573609034819030638527068700598342867956822352635025353982370962585967070080102429060232514112445843384692763214141302361872523698164878518053628212882910335067310085056185529936341644151114752572627022394267070470668077899052167143164580589316584563960114427172596269624437260179820790448819515250312860420494568006695304080189664760843484502189837698658192502266124932244831114546379162252301340676081589847224283199433978460739975813214771837469396589279994224851204281040132778633689729923511848006671331171083292883211981314631732540285922038712268165974633107369035018744490338404753498098128829304485382543410437686776115079819931447292249258131506530491214400329010234494894405235150642828847519697775550588840871766238725263548531323153348147443197342003630716741365131361879315876359155375553337820879812848594874176917359172277786344676653395971942619328193183309296595594173140095425106513275106303045953642016871554437837399334234966852506962938518326780275148274437723111250889331668070166022899846911052452680005749706187839871926205999227099831738854721403592826510477802124508840386796528501656617049983738596427440677412369418342344247681042541062250691725944267439000183316062871267032552729694883148292601070493298524025610835608544071534360068369498026037988558217074921297686205851210595242241931386184919348119942470538167266770983873710478899552999439921277848754147255953070037686414172331805654361798541954533382255969767716348050647128121808866420361729910797041346323632862515244112635429221215084994106797415026106380663433016595136425187198900640791417148210947216846445139938966992864352399521955521960790275765212838768757015842358180623846974227862064925676864376372484542115493529581599677402403846960666247877162038328488006098908446800775474858084230251940802818671530838857846684472537676075295444069090044035355574206123384898601154702423312025943021420161099674894801006978003542056584663212696321428756264761495396315533698915490740739103626287622874758989283828475713817972491552572204048924950102981615546804944578787627428582430488550345496057650054519339719986345093404892397115188213792665588186308529234485091020292473074911049752824717828421832999313781413043923427928879265269098574490438419498755401784912139848144210742969185541891064070204601002612393706880645393092827304735260585117105268643941785949757804375523465566878784313988183945679997232122767458073421141351645364056418450351041443436753786347181954986728955586952020055663123577794887618374494590211412255379690418072360843183301849336158487164903948186413393252826652032582228589261629618677934985231590427144545818297294204509335665214340373353850780439035841449179982513241523596084384370251314309592604392273114534093395035071300688329352735249945180137361036565507829637424027080630446101709805910639620122809215308159820985973070331870755730992218486227127377397170726860019399594668076252085966863816184898116162076050348857928940267934496640769660319597173510367682546173470321904308897095860812835855932241130353120043110745857365422553160007004473328882473593060463362737032600140975528796261086596922574899688435509806520949710731859889668844778741581207363853436796208979260262198265544266209213217575305525262589818933470691759467535243829619804164646464679880786353514349148185341908460855060941328565047889195652216922857844413756260281709070587515292688796514660826602146517906948601931566696180449862240337113778410629519395275680926520467812416455890811308938922984953810843278326862746392612934188962937062162624138806865404376066550332386022807390179755201109827888727018282031679775055378778829014086652556337431093412720478925123510738197981961819472156545244826071163845158373125508944124101701739989236935442797328551447495026118346064701020996290944877050614333321942272903198405620774915656844486723248218834160334358086387549688212788617608232756143725039293107484670941790968582702530403867448964608980890300600325852377768326630781292677977983512877429655458176648389087397527122260012742901911458831336792184957788968440953185697256442571106592782137478896058174596244846168377816753585730882423322817903504291152955133209651522408020788215611985289599144931702158171758365246980153911629226067122248311231787153116788309264721916277039582138669554129095178825289646891854628920252594179979387302837128113379886491192118852575513918429806390202202693382233907130892488663121783458161749024196056426671328564000998721254413082803499788463395889660659307543534256546845398000303581607867023900749704240256779284976065977317152145023495320151760285631790742438013288512343592800665248498635640926977254065435856479601029816688466524941241549546950824067991445167708537992735358754605070445547953947869848757024473191876271623417748737958937868262118668687473295183290522352542190616465243510010213626205174159187484338077785107009634820141413935259474466939729228474640484049411475916992697181390750333869166400821450672066012209539285257026435871876171095903520835789226266195399793423782744748925289031238430133817939718027384762523760930993379506984197497402840934337674499597448201146126130224307531289771348265834261757572973564024715897252370415196787515184987143602384881065184958421907917769416758785487190501724220806184030110696998243499890331947457930182892281521405096945040963743180274659036027004038800723644462757817903575444041992887121152289932715664408285500316675093242782243839045676027701896259204317784637906698993003285982084593146597916123461368522445426524273183127135964139216671449359126181129085236203790635209370495987862913718758325244824969433040035402640812088243950802338393216918677799632437325294148011548966583618994325740720867712270024209746261523786245192018252625875125100120027897761631047455012227402068909225901683538518447816374163244208455481549969956773495973965262275381106955628103534486349509515561544378222050767330055624917005174559343007867112240411432927368748991163239338932792178357894039540269049044998845383287526320288522517333582860806783520543867512651024764165054702780504384863111471051954852955376775884011920611509710962009518424698772533671211476720249825834946739664304895134203296735091633248448333400503118413974879940119828761456129772032301148992521625253043823978988305047375707052193881631660222519828907008872477500154157242116798589018425377562040075097603485535203322303898885337540840699243571376958721945547822002547668076931022365060629463858026446883146827344179261489287280977575020897036456824228131799570569480198416834482801395581613475370609264548583734966473803829566845174510714944227725504339768883489373957046645068236795406248583286955565409501431010301593213590433204067358186959540956340236839740606650300001555180558874618440428492020930673501385127099790528945270410457708603525524614319125306258010010129299084480799397989642466665491914869975889857865180637525512941329621275632278473338189538354096948936312319595431950974087230799609638345062371349120815790536704786553476452769874773536758535754382038881067563468552270310283217872587469906022750083976334491661095968120175014351620325890223695814460385702091074806130918719075841011130143089204939175724163283103449265347269585641648055144575118309848661587216054921887020205075564355933693488535193224887404164869884810477324230492841350907889590063944331446257170705974182949324411551197172773656926789195846483436370582192051350111394998461192685432299535007424204893663955459361429056331411496945981200673274430257203637334163473669983151797680596458516321700137744735852128469025902460837784964095230398876768103275767486365447589606777501119986473214095909538719066615680730484661883017371223665763902434678022513780533973990834592637218909235195648540712471655897798445730238205413333446835118817397137699565629533528886898112399568979751455894910738170157023142676431269138564124174810511105815414268211291919475172505375886337334132371201732911211367501722997340818915684656518611045378165948403030353952436702357573409034757012003243611396031764418531900558667616056665252918260879008177518563618931027246117209635361166653112470617162067760419385867808095459937172303641702928136753929689227486212992303029459000838048388199268850263781756571345818821334917369854081320951140808998283120227832813774340964770835770578478158146465659506168457512514315046096496875870127529200335903048376148849614408347464070510711515204774772782026590088334838801851564803007717831880992501700949139405078882141306564828095974505653579892841965784928593733264151106165706817090632948497827069518270413402663733098585704668791313146312502558056112009856675932999738326283751395724631814035322984554229031640936999301014038891702805682735069210184222963174570344228786074455528233278183098479310592261454250956144066995033391174814678230799513579320924172064649117452187710615682220833280189753028764974280716366862506195939804591652028285955421897341594513956125877226166095302901320637589509138026857474653804296493293119121642410614897867580385775493526451327222293182506624436454052058915427795504512217224318729768897937526174426055071924775263592581299069137160698190745862539319085746039908454586294605362986270823263139872930175014905358426024156228227884943358417496890081125031012615137921637258517928118139750033460704975625009476970533729452838939094364806451297205537836771453784891574342260708614819398630777372842244816278783622639172231963703138703803435690812093916015674061341133660958739616208649716126924308547050153341033098195865150277257469169506379142851192804622760359747214354246010731505579186703937239714184961983965428044440816671065265235808904565292285660764555855357454655247751083517460549410886098991655384908127057076979306271007965078984233135467227239350426245999100074325249201463947094621654093734500432120757214445621569827127208179449857342309725149315942975884019891107355863417938233574762876030368141630488670935452370863867918933927660751743166274809110595763409673981381280049595043157476416184711915919775022504629319508121294335487796841291208570439367789623931164981561169358000264166125255346386345968766298522810945234887843316264790775315168131127759362220958470587081899114969524346606348525630196795639844109848583590465882124249722513278057956952947493168688023852416091526765722409718781725219289655633035313281900875227187164284793142404711912942284976746120246138973447126518889393682835077377875319704228026821028351970633630702490370505006956578794743877125674163903872677375688489296029696082860208770758894860904699396809447043031588358217123410560643716140616249004720118180072276473228282768218544697283876151997095017713211615237486240431507076458500242594663775848772047861261681432204281311950277380334968229688716533303219171233633879082248954849011548076978374880232720540448642524921188706916686191138645797723317360995043124163025140643862047432891681160609834892947866790707424751558596852837097991459066310383792296188128711366934656237437832620875496483670199388653236176444418317097226947921264211801171919713146613372937399393757348862050542916644994041391290423052330814523922634137394993298496976121072044197661614915925005334679374302615825678129754617687669150239138323933819972616250894795592643690153272117680682109971128157703075180321388653250540666988965233795554014493071167972430410063336682467292457628789245264963385895715511731073421888342524180884299276718404766961784276545592620954945776930244769755297181303906227848260727637736400914274255215608085081070849777588381764196643310468630461410550289332497277654322676205711412819364763540291537846128857347376706400364404885331175608669886646947384028311668425589418416579111203185497977675761890210255071831932157204068944338655534061048049223850458119360592345518197552660859411329676176496384239372456799948782865269936621534386962628313053902990569906384253567405792843731431863042573714975733018011754240780413948635606888269585889846213165972251812749571525733673579328336315864165246842589407292751498944113895859322116554109046460726001448189098744062351460138611275001892506311589316709048460316655349338377938447744384307454150900519391020930785144279232171998573755884705032591583252983451577563686999687443093688824797116996679348816206610152548136756225593975296643175737530020225737090077980043877469359477800376288819455039338615343223488280951160703259377722915754101707648508284700225601357207517780249184151396021624136718104873551527250321488065199788538845919050884688541898591573077838910042103888872188477087111669919545767370551903357524358358108536645134741109074944171147400766261347323840039915141001330454427954554184928146703407419294745258438271723385121113722688394329508323746208771960160001694719053222503101129631941596506941384213857877426339506695419955839340001481110806630850046723180425758759874060514777583513153078489156932653226720096150937335769598955222615727316235872111286598565452881014661658845994759345351206852033562350674503955342033697215124843222946393148609963636561540771848995593811388311244913068965990271706589225301496191965064903998405936682346598860525939634138337157848295536271391003123083158569395927642878849132651534773149313401411524773334792663976958890728116457686391943254070612435440767597614904612912348102293286049599425871000189177691672754035719667396079961543135968605337087526884615976076066374255380638188296480175149596535529877427916895410100648617383505520942007141907233259300367313689690063785777645089866250394023688442297594396207684112799684102204212927150634166704310777903302561174489625733239026577271098836274701163686935395958761190972748890403104905480780304907606819627649709399144077417608590588096648122371264114158533250445912731683270255983639667276306502703017762436151752998184019999316444458184649506296922808095328141902320555621713770324710164103425526794716145635428455754684194948683235357040907547747177952040863820067253767772238855290036998873769887543318938856446298597838366742698591305584125464915125811338608179657187246174601296343741517396606933635897450466926264075825330024059655653636030340150293691549582738828282789075072559427811974568723062338465241629470270188269869631509471767017050419526568239349978782801989552801174500426836394439648816760755987882408298521992415808953065906959149195821624098843348701794280463448624925771737600810474103181327091737345538476097421612854496303726891832020190606310897571085364611086292224716488128232631643252329978344930265472626141875430921691680668538335749095594415549554703112772106383121751696368490440879915130707013288886319553428167939972441440115832589312480351351402576009107504702042897691765470733788319006502483901078056632852092696955671013630719122396473579715906612853525890815387687967002318781610695116216140813249706166725922128213121527016383068682342300206858880150798582510907787994073851012590888436320553885372747134950708738409188332830567115343157431431861587368214739875487564288716239255628514692123565177195713431485341910800994821466697780025207754613490108880505978951271298368438919367258567040426202110529297275740711420057997251511631131979454719273318785260565256480015510001759786473616967956386602838712024282491959389780444013972090352925327959219331569626942871682733429324927539914900765777096794760554462075303085356854010308393653998544889553248444329199304395902011072388820943682983140559178169397102918132202744658303785466969512517713292166345063160661649182006818090362512996930389943190825982088739073091405148113228800764554487254344342429369598576706533650803878160309423776921589572949039458140758679851550957657191897600497519014623513183986435788944573383238241731469518584352283663974328717152778830346235034870830769533940472378452664505270652400257358929195390568615999211817002295666824572929529707847533085636236349553049766519716216146220807904247367056988533125867594576191389467604186247241709974475984796309741947869194373878787060762017309243708385892876386455569766203695458732024851651386130497704499145310132338078249188369594916957583644859661551371571118357665525119253307638409795896883616237057932253916733187269969918709543171641324772804105202344364014761351216610842777118210426772866246505281291985599303903165898769363868552181201788967334072940596818551685690196554230523918665703843461139973598435445977764957620872557336277429188878722670915194777243237650791120645426408264332235459562287818129905981629811132439978938410286238787898800208167012626227228381679616260586402517116477450824238727456933394836341473466615115367877858630358749829889446942707400383230423697072173189599662458698808200619401636380348441623581860745183543422676111712979453585419902755152498310609591544521287978319554152663743967386703165081285435594932715826404036672368939971123223444746904892948162453290559814159488559777564253366286291778955272705803098335554567136634146761616880957402010080922981080049132357958536097144864406346114552909588440548392504723733706447933375338682101966744911373220172238929001299101269295098849543534713687292822552349123551943203768409886534755363174924622926561894030293782573642478811391894792324992199217802724398273713265965781926068033245660011778198375823189875149292073507820828827988224557504302283404254879290041670332306308535800687323088247727271237650398551492670338209116245605910451420364845725588432801999671139037604718643327664240144924440699052624549410915132008648433880366333198960185724832795460637631509879529685139672367105420366947475157146600240925532937741009682832293317943182016204621714544933250418743462166142950972695808077613562634986991936917799544065295083603609118230076116929116470190795850180759439594400991903321941246399258274554564019549893153401927808782751205274785512932290975734346829245774673348481161524134446108691055226045091137784319812493291607365001309361379232208801977670874383580489484493349736253131834387247147749856496828048512275774818026966165475819105122066125214134563061136533080247382111539527618841273556236486242202498175008645559034525110949969815524166457900400055732199480966600413627381533353322421846559324512954106884218602422782479755622055752384591870638820172651145078422760528512586766701429219246763969927068423380389061968660502852208167832330344751328811574530150268998922525671156476781519666926257146846470860300102194499978805686811048139582022912966848580356683912516359689289094637113181736121730926381268886882960521041762250171310766666030052772602164049342894665780608986673887378241210931909083773446711098061001852590087055225875499047372883859632261696524646087584299867266558667658665127957048503142040722686765893005581434927894807851142595799634670088091766205449910926400972036836574329488024871529230764138741217954227429788486489205418346223080500061042414077838613646335672552013853051643120117812824987667645632201803869305749066600971431263038801907394742484570409967647793701449546170783182268943607000436016093055658366841453543561958777236295734078331116463606373513819082279416477095861523790208679196985786790996581131303059403458622893462497810002787859871418798719841024255757469465627060642722331069257611738431287368983626278159193259771863411085203478393755563211536545225652818983309683714453645438944070733108670566603041329622104771328383610692237578108154392161754442788510989665274791312072720294804361588714923886532232884095200338344085814645695605311729697776490715463606600194166985333429952380051841584436601044727269658812066804250756496616761816069148537791007963083416003758174081679831864386849803592707823290837146216504296121989925608678838448194648843844467633561793354014630549324254635877495542601414032940939372817491749417720263851317720935705371255320552684022274165843301638319100592272286047151596353332462022661934541360789504414656179541485395844857868551766975070772997577055672019094448837907236797440554875921495805115103171780726561152812798917877368064437719790393833175182893159494767691696481936484316558789496690096247440051248856120855476526373153583106025038289866104942567521349031874638585037758838022334829098928500438531697086196035362312084304151704120180369330108011902454262741559604402919401312290959233332093566221394727786595910875498170938046106459334986299017511853869426555095819963083823527580170111259581231427501408031236943074424791308897307697894794531537854593370283619974466954782775787722580062495759603856313417117658334513253742386366492508973559300004672171186469637931097248655152115798267927970197480401574470141674750394267580140066325073295024335048811361075591269133317684411086340807050892115895660794881571719154145048388364017770914007375781390013480200594408335463044050381837568753831436096005754390426652800142123748349683174960376915335700375078709076836578304974651586523868818329813748446562194979090083528673569938198868074608166942894266224941626329316821093027022047245699188642761697190627644920572989937486071745691986648565145702552057893549441850134563762295123212590408642554418820576982053154403750511422021118619062955772087145641345347939208973064358742874868616834599281575676039150211562697520846178256434763093670806637334167930121482501294426241120048428091977764519754475364174699770005339217136654880256527280531165373185947883664513995913910668790054780669380976042509898551889223497718006614381115851768665411056007341945160162423984758950183593391843676493234931396185016682475323972029537283112270178439937289745133597118592804017086146727069869446167348642722740455363598909865647949131304160108139650290151666728954879621336896292374170992200646558456279444589486893839954556982486652295793092942410021072956014411960416408608676658629659157273824414099759825495939781562716127198522225085303517078292178935039723637374951401332453392979515769230495893396895030935062720924365631088098421545513937431458159956694385297245856030003759769739401605662496112388799581921436328816807618158748110237767879635934912052616634961094291051280462890826811706777636889225754767028971945552159776906041077768413305542111886223349032210842428533198941352717306304664163743805590730417263139406366618930634009828757719949331647358945957521349978659723587787546953750367573343581635931464291268135651113831731984628789865286355358091460736653097534481464714915982805146637416294876253769373688504532420789383642938225111823151486460475036101862996633587127220031595341523337142803666233095149994672640886600262851284487458165963240386737934467618017262151024182060181204396807338228264737872778814662403494832451196607086950207494492972414181609004246180637315896515914111628049554911339010165014056597557444477533471468372105284735420704405794936426829062391100480510649042319295562739957840481029725103851331907526417805512720300895630838179349651957333059176619916165818863311382841809379346193889478975382461851081620501524857230211819748109989791834501754063317804578885263524142604696106308783003897147446785100207688668047533938913653941133988796851932391668492929791938244253088431412564348863924620255719658791294779957804953931850691646585880624151602124778893140355253001171024236558872451142035045021215690650919126560888867540440281887770725959593660520548444956725633381632672193612747020423992194472481065966999364666823951648631989919286503581942395344721404498574876932479738770701576895732494837034494969483744212781918435953559235195018620435699678068580393516416318008572565207818188865002989163336679004378926243176994955419226451166860945949572687137113043898994830021170880984138453946910484609846718656607147885310981627072065132513942729068462028615408929743494875359505901343690351168975617548139300216244589022196137775152864807192547135915239796866102265688739069079078953426656535461272317229471857522544578726517836980241085850187340516239040478016821573933842970592031511742604818988878504233336491956100550915146411993383303239984758279850328840153373470695413086106650208297939592535249971062264731846793772350644874571603279485116942091779886570470709432363073945319373776192735858638565021354873564124487799880868452482125595708857833922436335655286779424503529489344604915745920825535961852105129648555081972256828237071392935425893528311475538895645178704798180421869006251357448360702277293277443758402936083301532036720231112968583390107897959018852835360424569864370484506844154890802800678461964605027928779565885591773874565755973676540754859602418162226538908576751082377104915205858793407626220759441025605935305779745597669582659831021002020932399754995649815939365223302546370683630049381284940993116246186397157460903463059691162945047075225890762996851800327044963218617243110124751118814119999078377746749279698072051514720079835717551448055234400712510912352519736236063984907244047125268213943188082187122233695661086444414626889112941830466705222234328452974778905455727167163274310541075409870889378905272626748237923189197496719960387010153929860988706706464605034158511900393132996253649145852495055399171026933500225914806437456122066391317108298963626257343208069709808835765538175597491731252172247416262684875667313727838176879425773483816713448064121271014760137354422526081920440870460085967641204801293999424951193828947590760923113857991510248920556598143283281326860521535767240102866501262094174561398771149055562406743908126889528117136519976009023070633385847464933667400744920311070398002283437347526684838011905625119424791044306670109265496030370991460525860360333754156238025006763390755567524055116388032720602192308310970670679915286678315173412122450459146065930106490433667814393984288333351633446940966701804322612087386449035967010765707934771349810931704712869840454220858466979644266161997980987199072501800929607121571438517538403052751775725732934041610321256414119490790444375520877360720774296970044877567104823278689807311679043233836307913469570635121573099945735006362727583716656636999034667766538592175406027548882607611289859681278913833341039616580955839692442169480558637811972273673629488867342939570313420897658559236259666922603819125075364818604882269130415415490732817080432274727282426395365724119722349494575967378729357095238919998655613622317745390013195125720037726815841966700593284683646740452027052107455191231047184758144399667248954090433335125020978601845449729631726950835846658144878005920161920580515011684650382044531790142383176828771556753816856716239515280735001825146139869339722903685441057382818227971273482079715859263060123696016594443854849848214382743862334211616255820231792271165405906269298813496077761873756157009954576198775252165156988287484175632293312196748752549509278809043154584693812050207187017238526213957435252487704632971828200341442776877523395306916705984311684255363993736305177840630721589919626488062209402238497817684704180415056707865243729024291639228396575453786873416045961687572591832269763378031182895867719984614274536594256699881316475805526748319653345282234815490693669768803000569181404287958530370962461251609679383205915751988135290690411999368225777822756339597502796875001961009563656987338036240573499130914847742976664852491916615904298839032574447406126802668116241797383563392247612942530443432698967450442316730034567501550293204169540002979639710443214270874935071907790192666570709887956290720138896930407659181429669305978653624443129061900635013056813155869398143934178658239717750925414763474074873408536774216998086729477921892706942690210322061864928239850795518952572204435502642598550411797619235105773225213480945017692316066932956825542716975645952324134109092346673558713612711065220587478369113931696748425128561772258188338401429578449726673944972843860195085236045288003910536637809541640616295663004661676089716509345967665336970535794390401684845160041482193775348392974350579734270463670213603664789467407619557833185175073417271116467321051851795837659378467759456803209631565148925618192943336368221895816703390091617507150609404429952614553084131835865728938883420965562048756566793164170957291454637486119795870302213766783250735289651515310579681510942175945553372593674007548834019545186301197835271200285720801017483395825740159553530733901840203542832450024644279008141307012281270136368502599907170669907742065143436206908375596498213477572042288043618625376492504057631430441269425358321194528417076431356030377059087455633732323202314639077587937567866128158384413096140207654245761326572142231198867377579392925133144592069366027743860347367490886174674594329501733989005925357154106266762130382558810073296716515540439429787783914816071191247043021646371020337552823754179382988546568930749538468169987943776404128942306231684980605931048629861700383109740752851062186629522747783053391444238896792796798554766062938221998701470445154666609472582807136745470728691024912624674816809318071298552787740710826108498561014856740144634646456903968160427832058189261068817571184953365317932279156291517762330150195303056415101356121377784551287372205870450017791284840123016721471135378189803297123101178935033338711207602949200178470172218439211459266105379888835475038352369601929298441146618447885824006324591625584409856423226459994730643679185117186424543010577182974831241357306041462530688346192211074037599849222035450885333346111457465180777367485559368919427809405403912636253387301290736726407067899206705083570114893003545285034739075612902384093584192200131876162597539580660981714640426668243694234756727671487497382812235576453220554350890792422388635610805165464105918974535451508962784028750895970216277936185383084586040184034943356607633497993923762198697020000075431202429433340457459104905423967333524647622825406955731772346148238530563456173674017879309491110732279882731918157857438575452915887046034886971146655404425432438956086393590797477291410236217683180049558164208990876897975931794442714865192764606421821388075787450410910463512845849638236108508290198903409036094468868630716583572849408622244733179891328223763460046479104924545061468020249708415186159377768294772428579009875823187725652424571023381823145066821835881286899497001271164407264166942482686579635727183721048398380363673561220355178116825410558495781031744178456554962593605501933231294061154225136838851965399364739853881339424954150790080311689154860163155223254628406305897445953583313794777869384953365802938158616783223151870658342256571688106602391433010598170572157205626105616964569735948132816587000064924583533530071431598402466538732943797393917091041659541178329672615991806426341042036209146484260620455815151783137939777998269758225764406635600511517897773471119475754095254038020389868832411314945928387264848561312277581825563726821771867087780326292015644766983406650885466726841601111399245055025777590209588675164343131015694660862559699274770675405233257727033441398874162781239395583473804869030490550078104304619239266159060872209012579920500353890644682464838892548922671344678774338890860840336253442447757345700485476951574085332796342966493204093366627365432353625810909065506702984749336444411376891344953164563450699771334948313070909593023664916168509497489424979256783900909101486194764962764044589806323289109722349543805845762207161104599203781235937504217710355383897842979807680902226042804166245390608686204325779904243300314907960423990685468059946948472032463971735601082999210808581296804579316597747304085410320262819167306244086912784393416472359106745094242166180706975596757944449247262571990729930531692918598479078800076676959587947818001095512389426381602210725391986002776135360127500420667529789326064300968813268354016373486332101899084523651315581644732524282469002036723789486042838936510317344452917295000505111026835234910758558946479333226811264526783123593211777366133833387516764055948015302287764332174533222442885646587976930418949009505283013019391681899598209179272305580218012574157084648658035685303078919479276503412352444523523339468688631374275395684764743210292357205848577410845602966119029893373065089663303786311601025896091253769367038285961644213767443277481059376939708541728143664265060063583509606735785406716792859425346821806208870094191203224471721637672920686126180967231587717594894470716888107432932823751063804980379220096091884248326133796435716246469065279560326997902801315360364620262445123364331221128373542122303986060636971798090408454799716852649899198343259107989671002051224896023629168665630344706721698188886113344409572414539577615748049508198365969051876622590597797051583790224393561192747230582441106831195006078246197551259170004280262395171043613508035319509040061379445076514539068080131525835718998701976668994747081624800552465580478699520035407471776736424989570945947930090499098123970315458696304683536024499822475079425473480723955778637685786236599097882067612532313883913354348966387748529038738354568613360211135851476799949948274630345425079774208492904919214051296487913121104506583004048278770010734721114076511403231446872100194749850009241305834734171319805774848425140048148222331005581800470042968192894953826167267075562806117090110727735474737100495092593813148748134055710295316680226081572344892949890029171961814152366947870899460845275593295074604597119748205096738594222594785404920001691894946209551921962072468045208208995209251010545804264303763801176959967733061317162188563437059289962201760479784669164924013778188404392102556460977085948111409951631438056247639392659090816755106407797241790931562508259867875290239539002340356406441595219570045217624529078285860802204196938302234691000055791297645779417864783264878898128915589409992711772311355086804668093911801024231909575429920293545412562732845031994639025072971196583471801591566376689227614819230493873277785051454874605896634100472166920868060595997520460333888651561854912670353944810063993208653648166905372155269715998506139049135697184469697249181699687712806036038029489004599719115471066886775280297548076889968030140667752767422017415571040913530896929537705515161916776853411541443537279631503372150067540194522699767868654794844337085391894611021431182685256925117237945916286682322980873527396104007054310637199302154162646809881157148402407465487479916303182135943098318770657680186864918328801580484048981820624993119056465333128281307459230522144486549449205138290392130496764776716959262284955271399639313241945942733337805389763332228882166539600991155039056356151350746796155738333207052699861857519764101558524659443319698581175335353201275116036832607892466971543944879238115610949094519891685859810093017171008616371536561410628985674713953270208541792619542502752808272059491809238500801063927133724465168643136317612791226823483941297947579167868177751142657026006648339623517377833252063973517752872902263167187561640649549759599929539378019234548010755654801229117189840847142874118297860488525821545591045730482419582635074223765376472841929571003495136985761298522104194274899767691263608260863835776348552976760344216342100931895002810846994291778550524093403321107022835636243120102644414420435304142221593342944874420152104970591790796128617393588624914972904392741941511517786513930394779521118304046160551772910670795227018825045650644372972052835558698326142533575183426293374100195499448051168412111389441109141184243757501160410465175171197863957077095843464574741758082790826602868334943500850280011873924097821820136933812424704352194897716151913203798356194105118769539071262441613640440226588757907874783782931193086706266267334969468806260537088327219007677913934749951726657522929319034371886091030793694894324965707180278766140791053764325862655211045230108078291605659707586566230675938571427261374815609945324862879929040420812680614459576763310183444852447397785322669974595915387736915286311275576891870388772658260244778101015387209308604989088137898188242535022943287720427232764752999952693368400059749912292460105038074025482005446245095831762702648662468043600174104480186642165033319491800259352301985761402094228516447837395661592254569337649190675968130284301373127989264906197455611615500724178557921861006251477637342641946270693831265727114285955684968454698193069485902469357683323144342732078424322845716333096481633005071601134845810425202380420629778528702979255946513745971584847481956767823065764767859437898336740805424002661618947989082747071007104815570381648432091196257925250853568873286985474695660369108637801838818727467687927218503220129620542285822283487190097702239825522484956030732887057140341354589921430616018953775450066817818884056364048662258809823107558428468147944493894208425979449603724967907694994187218827514903024715967381844980652923056956645222082348199845934119044385691566142280553418238184703067706626925637888544864464340604156357464769864276865220228428517472008962798913711869430092068372431647494466904594273995821937370558966476709177444174791784475524482826404825651388609506815181827034024263183879137024946812159187349228675945135685994528829304219623067847587304231615505917934474964006046650483349917981443730748508425463774686993953591204117489564602891788679214735350144496261293547143397513966033362520259286647369340193580231735251560753463346440551001143534753782561386064401799299916857974823586528030645239726090467733632433315763389807268580467996380095545789826424173965256626864234611981268396205837516671823995445446593240549463109772751487795233689379601481613186791736848135456523347883716417003465864641945051101023977262556865334731259655732456766261546606804278330803368794460060588227212472088294782236910467076687068744933730624141490727766577085697965199707644694093297175830009973948709502136599699511414051263708344947935053828459830114541635215042644276447438467558187538993702109022320646026870492375206529352693892933788673675564203722221973961736955516962349513753597254644006521219337034042632318971196154785345083094167306350723002727839110457968564687533369224245542863172165045607583837468549590488598174716913475532573149598796053041141355434302012943657117652546401659356450512648030513895009893576609926547069092675928726106646087405357536705808920454080651266654015355794437298143937043735836373900719122827538897424999773876316991785522850668958373318387029363872926217347726534558876056959145235656092517979365604448394878696156818762915185736141183859091484191740878918769886287119381518363268590045345823685421007593567425923786956244201935008070046979362430676755579039038095453001152035857547839354932846613458292056258414878433764299055650816198512406477258214742860407399208466944966325468288163429873670934482000594538191985298417093252412737043866153836675382145342552250177763136614930826638487454334294301439635878836928271606878558116192848835984613991994010218708677665982225477979778029735113858161285047436151609882452034263685333325075691785394542412318092822165234342978455219179605926473561129628783343499104880579879963443925992046780584579455069347235944192799700049696677384756061990034748891420620377626747975355338080813240295248877219358096883612203098083984491790629724478482751781608300312457806365378433531637678656068706613496458731055388416718719413304714556067856270967934916751439586753522302302894922231596250405584846590686524611103762022144203269984431065245395893803884586092888974914675827300110792057640867257038477783439853845183928617338777868329526828426592169940948539501925741530279261017273950452474167678849537993597150222326966188856787715318023868676952438984168775967359874702979117478046868657285119708303003316816772760411063472021558097488236935559899772320111358968457937943576445500386041799882406577784607466587108805788857961103768474680138622867978067970101778739988243514235308371229373308593629531601338792688299007944354441618545634689173833177551022671940724404233277379952670134093291333141316083587118120508551356037422502246339284878189696248431286393466095678379768857968551124911910160907855668675719701197903125808210888798131316698647729474901176125320657120223946983279429844779841930657354586658182667950531866481676652287931445065226806432316586439142374324495602184868680572531567874995783403476721869825105491135311573069079509113720537407791432948005089498988696527569663227846800495478004387330390721364431786066719155112574901713743974092977939105690675895975331958554909840880533803185023628285575118688835717216676702437699068323664679099689100936111107562893284738057170858156695560483867196672266522883086676645072754681989136671634597594935994908450396809075137994052695193059317383826039344342444580357518346264083368777821749385703780499456522938325161407256298394998232015621200516961841868069359273364704283874663582854201320427639811312531418116989360723280024324844348964727061140859130980492822583310794666975101484126477900480434324094203136353695546690532208784128852087189295714607428546856523873851794773548608243619802893454374229952777437033997622568641009734952530084647233166096371357411252332362957930599594332454999366227332923030371013253988674869425964428296925457167303019391617675836589822174039484707139164356016450745011296658694409530264703705022457103670948161865653809874457410100237024703523137344039662388716276765656472688342738906006878384875519445206368261833317384153771509262608267381884207909063439447265861617272752306503220796297900574636072552619578532199138810135431004618045156561255349756349574859171420949207275268202179762642488119174791452325044542757469512142298538384070328618450945375026869930755124046245809998330006236158191799605152999274634180884617370546145774671516410577705526299446849187352506654318344314613598013558569918330435817803280484524589356285440187569369291527591648712631646950106753514476166903138786648640044188447518002382615079050866765676331465583511655535557720201072955430763023628308629453018547838422000161350675614970485029172234816822695098586149662622688214873353775869991286200571389607543192439544344875213820068293491559011500335503085231381961278780707329113364635502339742785041053956151379727445268892444732477688302163310782506425331733459279591627799030979883398565739739203640253780247629879059301303269060022090082653645855555767984056767253692495808677952625265280303644140727381227818350351901094073146348713405008415054327203588243641391416009687929432216256367100378039775764329438093242343629927759034602044335276870527865028004858759346501267858125461008166320012128907511272063107608360980992526543974441162551024577059251436647445945590325575708326819403369455684010416796983090227972004353902408919014604544131468871794107497085973709133982170591043178208308369689395306899356485019113236600479461999355379653989419617714843346348125371013292303242347709027998481471239856857790692257948659278129032924802252560908049897143508457601911783674085250894870579728486477751222970770195360621206674741981889375738586480410095804712152551988998663292052678723951423825609649619758715504086950538603517968512397494484329329940406615187084003792370334544981982984545657123599725259747200021147898802221700963121617958856216899944030051436785354292797615429595054252212270589622404863873775498298449745245919452547195062009780157714313496724622148537826712036731804429009157836795795627410034597036748136848972729650546246949550611907067062160845586550140568408823038076220036176095137484580046485086244568002832795222644815340183080092149919950761807792612011623013463225436083182196519387641859840537415388482543614969333203742237626937714603766136696318645679341533850553543290356305356770319535769951547555036119613992856617015189456782353120360214893847216161809311499674423960242075517165330339635688362260426422657728335600118969504952324392737206418892073889118251036741640957482732969944480227639597653731777318391951216084444522686973805601983958204493897630193677480489123254434952685980314010400759183544477231596312480441626740235552418639206975562059494035037437736207224617562940263394556261891282528262878076461198221386048092466419307516366595622817307766601084825979783154859170756554526707102910673488332264050330370554913422708184377548583509569263993936449530500083122790417902363326299537706444326285758427547310992680287383813646219557209117933991098521579839946281569286329771356081226940378666524534369191441151822251150798982868794159398844356797429916730608723871440477889682108846278648532949353084384759238699998916596109412399011451224147249014357865559853532120044791469560396896177227642430532531172290168056841896517613601425280775904301303973391574657092191897111796642859023703867082633559603108580415962728891752225429750489400890528109616777965125054467323679584450733543423706435028668212825913319560418815660060000307951341290856614948865485663470656072407297360918179640538415866433696969318885442604307693111018768516608596632862076012773220344559590938121974476518931394449351874614480029823885496679877725154971595610151408048806598555396090854362722825349941462620981780139180392742218770134863162684598619588606862385489907974462908722187630828352995673712802733853728631565728662850712399775985348535628763580365920961422473311414194189469777700890934249493971994139804361375147879393784777699513442868255302747954346874841515612008068988272987946237668787967876075646775322882037403706177346192641297724251017111759953258771750890596228001382883223137763636477675886215099600712719390498778800914971268593940848766801541351601117855495962231369596890359100477164414725593855843848906826368907300942412850674940089233052171275260181371752103828783825252345507788479454466245680246529306340752423469338992237667078968183497653955354728737544093378696062130036040163715548273591471068015108137130955419645725531841777366445643324371647135440573174894958994936384894026611974170672386212609733439182382042830312708628299057787548310951234235114354403955898374217480126858197872933048376878264336499978423785655288469738703735603695247054468956280128952655210621037384143004922419339116393869017452241483257783054819358406227624057282723457653063708794178435350446446894872920423426345142819936787251551183139007474352624810347077962118065588084722059817126116220990274333398924670870241202735493094865711796800315405624415825604955881957658273696878839344635052212373225354204515832715309450514376363120481850357526997974111519183438625890346604903327566662067924215350540092897493998144117957387958767827624620994031862816684634080255244681406856897567014441991530000449730876698279603690293986088240521895332039273131603315886601962722967700057631346257167577557464370453477088188422758947616793102649991600757767580197073716921316159836360908137946875635622625209457791791031022067750620200269452786412208955749333777403550312663224425202571190722945017326517216801230670126127699080570783385851659158499990779609563224187803458024580555894663910946939224067736064644392423573508624238353307670546344433835068605949601946174709832526204052634602024778451387601496719761343143741760487496881465941879509257677069863527943544258249354320166282007390495203102650307028049254115532757390490044931087057245975748610799899768408993679745711167060873998987518008919847122638509132766950545128049908089019123348083380967221275195533079544125623256051202052381352759537574367490032460070981725203561294124928312491758814513522295182235333697865808157702885834080593505637578279383223631753125308864881192745786260391354451153385061304168184841967837643451949396783717917982000539171334954802460305635950904069570641144945636411733326393865899172317782634383273336936980650459263374219838864413477776386568724632120012517238406021596243471427423674869119530876691813826687595706410072534476927219451197000855837000059825183789068480328141350754767400707827894327753098635190950127801189393642823042038689057901340905915347648910565107374866528781536883625560341302715229855992192810317555684226890386136446494741010089032533583880727006934092448492488596944646963029713312778251985368609838413797122703440446734472347968396835972234604976100719084985996913739813867450931647987542904200352327113977280712938254822499860378420208363934745865927516479864972804371662227363152895731011685375414718710089119373255947065102927055452999590116292826529061680540098480548773418843388343462035413149612340191354123085335443997236205761304206549791548938352700902917924747008748660367371505262752565885758788527126379818066300379901852806494051229337173851541013033064401415478466521078582129200100970883096410277901610470029381183762991158747498770489685289362388827469510521173775410687489255597933584525514419412139099067744001817006344548115120694660565465604187085229214775986139213266679313356964830828781482794406838948164838284239523412321632210047962293218035595418243191580814686495490341447085606807351274687956166200192954029486983113269358551064168477085243001342093032769827189832973698828139941217224538711179988718931979959408400141224265048116414332433184019671938675389919024722732567166773430714981366921896732951515143337091331250699030264983065591807676178252573221601712369073221729968989636166807934388338409777416340871098422548621829342176576195985002860258415368537362297408472785900518636876295634940070225878240820409351837081403860881420609670020033689616343828083455517077702664603442590998926543139375321233592381285134937394040841869069872285475570245273397551385857227560006686694827782624294442111118849639619468454444631083844901110041886724117446383053352778350548730547927454356052360646617270151155884345698038834519743774593189418579879032530280047658611941353699273872360193201786462855584290472448219900757750022855564467728910283629765932555931117406364551497783800724604884068937106458608614600017257935678847003889429610198660237444278689421463759588785542305050154599551275339847184083265888763280857398085291781741511449194832692635245885127563815858727960703643066168201353842823753563936366060809171695869681827800446046165686442591264595977097220330502701468689135696990188448941116779903613882750701469071995794325940297020187143510492407601498135868739422196625159245173603879366628479619176415854162413331102470941679117173701951537258260441469286837541380724073455026914137816448099635344501384802041323150387786749636642360692022937579187107655497319018145063129907454420243747334493621799962175163328306860408062106589742206353237490897144368262527235333435942109416263564479012995356425363495254696108748792723315116342421554388879317432769956708777293514492876953065305499032110924738013417761497939686510703473153094804303693272013894024825859117856944388421530573705709740097303551944797082679757928138879486805449538126599008260002888664677547750632822545170810144236975100543014043480547241582458993348774391228992198778857651614629553027934076112126565218707052226800515321843839530525108506978340799746488588693373854580697819269143035554330629381677680803162052838846272004898093882596592057767130561092739039616077358658870359837207007654967045459191655487577299573769874832903866073363918379148603544007031974029677165397155244276102544529014767381048958510954128362021561162156417862142128084861640381672052031400102079486685977181366944189753397364190014766795145967393061783679086605458816304005588083830262784973874811209231580214784874238059840896210442916424739176374426988717993479620876012235859264205290688799327542161054538059610090739187545943940996885120214420481649390659815898256407439154880884002248493177053024709352475499206470278756773132971453176776368714311707462611868776095472329311222119670454186057438981363722563763638311833772307320180806827318064464274043289004162175103485163809352453994390996817647098864210475149566821036333025986816945956507125356039754929372318708627498922788779039674101495224926199632211620177572826916916897009688768776912713519420043583278412430294536521152870257418656794958727176996393006796333399871855075745571474752667759652841763345463868510907348778125173657540714319887587180077586473315378449508722672982927639097948077185216937162378050122717782481781289389796603597823450755397916678202401325177023819497463587533382188409402662726314668305922806247412975662460921169950924553185404422604245495911184288472532671793821674432694803393032101497765864206547928265106422597325865644734028410430102727318150999830772385368074675072185620052000555147047244713171174371461963860635492517317747789938053473860890448357744057897292244489986180984604221185508346214124814078240826362982495468674577755085424769478498478215283075889067917001098254246716440088839531234780233181953826222897242406227246106538372667785100122993663258694793724679419528677536532657694070729902381929234095107382070270098681106995322387792478464524628773399938532629641853025104779178144794934648192560568155775529014877562539564859551020061839520812340972921336426877466517388772204084137084313659196388804260193973906973228674117985668040548415610651937341680774655254314453084827091246387421978588799971875406836957375422315546587998339316952550207076884879305820873469544673881195009576659206151052483262674420740662279028034184938002751045607754494993991579675165921875210088009333094239860880983486200825308438911409415628239001008752918009598602312745384711180136867917226900794308876850909571345918614667396920404136309679923147505980674840694675921318625318565831254903138598895860408912012263731508074177571870647162433512794178979964631019897578391565418383030457185660385900668715186322807086272961602559649778964197495298688581607003828499989306639313623183152650963586178752977272090837291980840870501265723366152986163011258484658987370843021299763909285394052958580431206749071564099718835056429004136464877742622423494099139132451992255684617309857032690702952988936517931779112433311122950384307607024496860123915087568940920707423873578714300463248158638388228666947668677830878000923983390430740750874852414312581455924295267105494697391574389564637978328725498736963995304030468441414339957363653738826830021775752690954116552676004856415633029254318945515147042678263514653916052441362545054312853268274942665571246045886045416620502123612583855594845629725826508282326683414751268717717189308572401927871666716225754367056337994715066170678611410632204517545091395617746385689567870533181757780251120074057829946643488963109534358132843011177911092893233478702755378620507458147833108126675269053345859851680816756327564040965820125606466562513316959784801916169057010215710882869061141402041393848837722700778025360855468408036731238652054826285103729755700108024345694618408474555522790993537834146766703882572383362702558178117589707448541996998059490795863471413305200090488941790133252497947019856586440835910931476278904574801868919096630274336606821327989296584098094975488582014549926680580354682936733111119195385844691039000468769732051699843106109361950968227506632387493030545621447600751152933254861853124204175379503032976179303765314807023921433087593261869391849409865647765755431192586924568895737262474224421966114645841293808044281053143595637077106325256426482799413673677657892261071833870950023958279339261331816746364259804379983080587241006531347981961729011429423860708597254903909192257978540963928888060699250241637357733737754447632452336267272815778691801946372545322299392120541248359672721907069280213067984020524792823813496924034694847425579727703538504863256346639838434857763150204548623944263185602753844003153526620393123027263022278853482242888876326074642202896191769960830773107291407949001539636930481073582841292067270335753677987273723682728592162445362803507049808746991817871344464496846470719114572407082778555181028366630960304898621256850943544473033190819781571256017662079432605123703730881097438709063154306143403412452788178948437346024646471771407121278351897319681287249943935966363291180353418737907314922761423956166549886001139684135907538621987184578858527242947367703967419813005400962552662657157287568642068348432756702369169032392074484557095865711886621865997058523303486369701985272021748874336073208196069536553458524338291774404345525222934974650816289153774996725044192019991763763947785774790556209778291214886499300204312304548058800784595838302405892344460955590407934530097301572438076341662747875976850002800168943123496745483025920954603625694810719225615549123136520950085867376086659171901372326213803564797478554008900091695689991799344686388046048576421566516559655026397177334401915791707824803852299784654955236828339503737460577701817000917040254391833768098153448500937672644170208028673778127950228853035040376578872062323868954922195156586223508010172210002848947733580123463736810262760600820845162055622701069382478452904300097577600388314137914652167736261706800201174736926163198414011637231269318063639557677521766176356535450752850325791800683836658608628309125466961965993401650367095124570368012192964110070979647833616602243632484632690056905969633593576080771380055600030006811500725980661274112935766982169763747203704480807449506542040681957542284204903600046162644703081307124452526552423261189439531083947697609312834346758497485763056620067463518550356649613774580145591896741497479005439933145257290219175526572739002551606338924229081145413900564233430346168266307068286854563653497131794146501505433334017747672109805124787315920504772014438867230798543897237091635011909880511701341252361619714288172262828522579410384437883231867727874486251030763887166342039043696174530843312705474768458697948262510702066836711518298112631219216784172969262354738921362129222049010313590904678203463272086339331752098735954674968618706455945204108389378478698118404362445098230649257733318628231058778604483011570130796586304050406258562750444051472047884965822965730005882906473605981744491041384652347549365098289752587852045288644594561427715583585473001962274451119127732773821576493141341101579811440474240902713482168685922869684683304854683773863056860650825051155563723460258746430587060412980698462419272276518061473553559465687108414909159890444364208991784856539515550785812368674335987278873308132680374454611096016869891916687234694103835666242089558250236673860659921153041030998955638622454534156390086125903274343929553723805223780396632332134085648465383961379239285144720687213776625741566054829436391998300846690014263006968182892749164269838013963035614060043842303926584227489255466088675314612029036064347037982305254817776278657353570901730304049705135912703031592275727813853114310715317384605317897451294449838036073545159493933786950929529045133366285007951315163825651377838976844174519768265661186786310713832292209987937945955287261015297977865411794211258386892180387427147583079911788352983705275515219323638659372713944802002933842331959613218409269079850025473057582741509412299649941677136297627004797013233595581249196646980118670062852448876104044770927879697201033607577058010628393476796934469329464183992313854781570803661171723622010186275200574386046921098500917254296177628395388011107718231881357496212109853625791466647309541867306956797655728813090413910790578864689760517261847237504309083842986841400477912727500255895470929735361877250870803185345958779820265837135801060138663015950289285851576439969012866954861213951629816552586363792255665863016590045836401213158207567309523125999846596609774138119738458942841407364753007322078399198853589809680860004850137188455180222964412106460837044720380139530224770291720130952135430676693984185634281491190274213813045434454118141188787561534187235927190044913173999421715835850832919880896332778000537020830994986429519764013850406873112888502534149968986232747641994798853698734479227242560219560463846847776631972003771191638460422556685620773380404819027934789046161096617153473752094471687241938020426163379209712120335852817083361060106514544480313701568696122971536881256702245603212462117557020492588999068714038653637052098849789526150067447153322753598676814937845685441467875377297765165322594887005979256272475759164484036424899980560845088229367984156338479521283398399193995277095569000394047470530518020158245988175390961478899899659781101655138158579702400922949291871824312158370932782701996209493191941571549555668628029704755316009956235077196235659750219786550625212440931452352371998463136142289652736970175691235301642617701007623823169455922996785334392953955304270816069043613845942264074920552322331759386124137593830114294483863228274422852723766449018895264613701622078747544323526330826731294728253647739552129456261788376436060413869389726190091034578324328712226191690653705331389896119809731892463310857401145373741292413982802425308406535353281283610218607566124996995827924059982120648077567889103848960769959224044712623058550142176430064049363974839939320610482804917320207273618926450071672376873297383616674505023184821226524519736771515824101302001229141215354568699214918897753445048684603735715578814267933927112257074143237822962620895032302723451478920138252086656025570445947858293859138632735202779717139543316989342414055604439245434831841412816307478354447921007682696914049989055286029211226717479371154545067684674530650526879473235588066315075502514953468278981340346183255543720675636425802526282455436497630040303154644979247091196748970572619960968930699500849716969130754419469210374762030952378882987445803791777955128532759287193809770142581051541486901225314351776428282503023937552035349311286758915414847084822158257102214821642570549713210084488321359151913180893732639120941384933039475608517303721856658220947564508097733571046479092225866227776370923862765690520921212395896067027330626866571945605262508914016180602500518201081845285570863503429278997666096739693761064533662308875807611526867184672226613720707947935859068018600089389929165657137068688944142814579695582983219434547851221122876823496908294386214159445537085305283881425328773515393077234228659086253788250065251057647658550528588308451857178718783040235321180755390847890318956404647732602982244094594477779438763618277825995304871715717285464437072624582758365115918809195966983261432294133594461786106875320242745718311117729880352746169407564505852133402806128744631711352926547358071458734187068773634934133991171104050830811277293836654698084739216455821004823004010317210795801810357946110548038300077879551278631303481482650042578950015213853327962577378765000593277796122361328889403975122784695474824291417078955859691373754935286554005194408966675101323226685225399383444609973931481044747748658430049378038200348881546841534278008440259996210168624781430744548423119200909584497148072288127836640279323603466817050090276704826420982204178595311131031638755915317247939180669711543614460968692528365097923031309530605197952282178968515620028450529927724550465679754931517993243064897610069263303109849005064155729107668073665444859078210475008218488399793520260253766962627421125895525447563258769393931552846206458217857056524004975211413189353872739842620887511527386470091371936451522566459783453109749053033295008758607404616312165963468228676727566768707143719095686487781117865791739940801653361176075217855055900732911394224241905350118976995360327641883161422492136306133760458603615670561152633894229108382027774139715084838516374965512417303807193471830164852151362351284985565130985078994445372281421893426329910148429887592151316574201818310334710901555702005538705071687605214889875059598567152593839788237928304637492809577584346824779864899460922614597364508767277731065758361441744724473332761266914670336661570948753130384539636498823559809042191751783066108187531715659330571544766066102731965847771633654093575596666877323652812489235780067173955335928703845276446742536610456616911460813923338364154292572519669495340106686513150332100868026640209720188443085214455305728431278841213746468828858268751551357149374301145748935865651039490958196956444065241155087633295835130448115627038051609974969981760712030350678838697041426258782823620831645493275420105095523849943602370583570272054002404723183853843454206763675999450066266896952541158610881074510471747435051611795754682359224277587059168356594906307125527355005046580910406909630735305218577912547298810411397021494456217910443358524257932175574595609983705356126494430652988125118931998875122046772460933126563071632395841724289425135406560993778354442755120265434390345509752779618088707603181557149882453943032047424419714687996949678635456854996519570840960631223376373615115927373410076574034270522194093565812091651835595277469831700662853826054083517665920972521545123710394450138026284249185289825651988391477109058407826884107504549713226663172728450742715373278078000444202962793998276752438910504980062723679593160454863117772036649705887629433360607679192382934522348949508514674133401917501473087092661359159754963448019762140849405635308649106589360412334499760214702484835898424591908784162828325021266067395455210221603474110946942281779566079805689729386683081845821986905646252242081663078524639291292035106583972506965869730712981685449102840490010372322533308507596691561911929958506832243830200861717695334025560335266722698776891523130422247092270162364128142316326141129979862104641469121617088103467116523020152598247721875790793137325143602879989870207880875985214140221313635101627639967077079825087877968993218715350158585999112906707471357309835675477313863663795701644084720500337292840204086501891887254187258925236094785589363619293733368058571647870118807046904238108154669539005699039780911754849923485442477369607235820917221838516344064449812537618021229006771081706151521642983318560620290525795935756300385171137649823078400969898294505697966860730536712508799938520363265067726695485350323610518044738708217343902986741363850647846448119659918498643063170106756195699534799564888105212168224581505465229434437332776017512285922682350238821419732975728012365931075584775059318276577257005535037584895065771596121229259401373271608037233185867288574758645176413246678371453161454058511592465273481207514990763127101584199136963119225012854439237897463510122954437249350811388793232857678847379669007775206203065105211592398466822059424585374768665662060857822957089070338917237810399359024627304757402342244430101914866397571341670610772042329282323251097471521417961922369450053131442896506294616094995835102461221738943918667562291903014750920440861208778831020542645160573442120253972455458355676066054395859541559253732917659542387250495149775212080100350165307774613190148147573134461640755052869378750636537616987970354483022560524269337193344710399263014529940909511357311842638522966032346077467223949566392446239712960702396537783385709688831874359905915135722394306080198022961055771392681644321156027095867013252818366443148457630451055163605767290953219168249858488481651274250287185364990089033794660649188944358175996355793642187078208678806277000466869788333401639877749131491715769241377949251198125356311211256674555859476048091250779469119968740013464633140782423800825036178688520780199580142511907080230314977572357691002255691494174993010378940721214265587191469324571566148314560640698821236341180210876471204281214723026728067550488796360667924842667124680297360300196443685272634768942761548889520769031042879495960560602415963897935957362952674244094730250853385994849831655213762934652463579367075481442083565346537034952280756941742775222480774584527615311866074223497939584014533907474451955430020747089193442724251135294784443522487600380721945134315777984973021030745030589614499664091778163876707746902551334024898829413066080947344370682801678246310198572441825140131473006768199165440461012864642133875533295897280612142389613983405759051264559282788416595124203507374038300854384376090807869708285740828744585519078478692973630787982904749341353406306819262615704093664992887434701295664722911440990265457290171465731382225972585237655100111867569188892327881047338858570648124038870073163353795369378639819081520871993303709915723719118170250458306826742182797382608121864837037410289435013901684319214148839208173090237690511782050876394227909003612060313651784321781985189444201894453072898817699833018850060780837656143908313915451412441415645336386922618687192536176133377957222654831981280754557452938470820411738998435839713306336950321949006732177693073638694087735524116080596384288315943754345972724001728978154757046857757054280951210241953373584287632790666900228580617719076680148249843146338583283941488306494871705803309106320763188417597212947965011454900089713587797466414459775579064859425731770038968672554952864318477925796719107334326948434415460886452373814960714230633926061227009491874383970969937902720759297931179732635376838166453280147483746621001216123680231886675554113389584696440960758046057197387018005753096934298857982360794812861873467343916701349222837291718728588470673745150666431431353519928645762903541685990319308073346585670472997134396503306223478952385776487684564785550079786790954017875835367067383218218763227521189884671140942424502646002818534147719382697763657449300579926663913088547619589270117843066903691382839683249877967013085912012424922720856899618771724932665499646029611673529270356676589653902658821822558526737880786418365130799280770680584810129752706994217493908252548630985159005906817808860916579243861358236809195527964836713321211899411566984420873286565859799445287972764502919570540336203555736807901460795066078402159976632250208778297040897811681215189678031596152212150789361799361641407006368687921122519155869350632568830836814989877275482628838079903913436325753772190551597253110849484272579149714603143431659815533018268518431005294349870335765338130032256235826618888259838037268573691264782124830867180353640757350732281400357623206412978870728457631425718496246811189951609048075794651770879694270467084930480392759183963206357924409052726293526210365614225675714336506763378941606262596843208838686186882588399507206195408915864085308928836485184227254527660077809993652435111652400630736173513014928878648463655905756008632782566545369179566910759787206585220786297127173138477814438782133650812022567627522327953769395190442226692977467228541467936711471842841383235754865572952325393199011382650697561823239181767071316331244965910901259439773536731131685397496688588370823720727996992008405097815045313634418702976352713806829405269172336462392858584506399656865694230544394691396390216218060882838028408213967472010689280562522758430004798314864477091032842208862649973490399020769612443507155519424772263981305972656570364942800082069273800961023292498294131206100519666463929070891987839637418924054341283624057653661340942463682276667171643347709069908865052953673269168828852011254611589625910811211204057176291190711932234869976286817099172298861248054018213239788029484504035631275293897374853087897466431511358087029113027092609566394530509821250920807657228639644883073931121870349810024746062679262837806863563282619167935862614673914705222094484458419364812008832591642498875200869742608089061608908399172276733515296832340299917743227339400076294461251368997155905651517559135551869665771389782110468830545117590316976307073013881061839769386383704137513920011687975370458372063755504837835385947252399225408500081983799440538989088525366946848448479701934560557251828544494306278365137491238507073344285092808952890394618943298680117594637133044078551581703057637864514526213282043697689068621263566570437990901089424481833305154883546597295090797725675510812215927311584995902464101304455740723434372701022048676382839566482855212925194348753838628902560137319963246544871595265947544973011348859561191924124555588981524833857308515214958818165149116825129544797942863581168823541342526600994262468923941816223372944386319945304564645422238692216157739661237090359859449068464520502981557548286301754046580775078329965955552487107136490105038466094325807890903464486652531464714752202706954225473314866309690037178561050767479378557815182426919733309349951698174615819348871082760729890252519884349523988661078274471481316635527624585386963251996500003701938406852493865556906801251316583097835199306401424115361105384333967957374202659861733172213440110686606166444177048986209910364709246367754986687249768163731664318784568601016101268238549805332004882828345269134375964601186418070432638623626354998511083858234560950949309806525064719987794537411248002315633985341265029113750375365635070473280367393306391255983183036718279006198982346435923301013809566952857959199370470211967590240166018424763086113241366848059293545080003762872889085508748365630076059913314921739772904747027874661120416586339489092435994910528295027285391180050680249714678448886020113552472678740243816167310161502940279103401938744623165261710731879007505470874115786159093944992634934944913524506506817603590071366820501277078301575719580978634805280518176563136272890173143850186210355204574588923814215906214604171266146954222080367391989377597586943032851250253030573266936014134602291026640344545204312472613070456249076900150066995904337342270841627306702238674456018917193424924346001470873382675568975788246506205663525049968661393339460174769563318810412374644488856227759281259688895484813862023196464613111002248619004340036958359849253988842781510049676943394819630982307019465385485791451460383448766194316119791609432223061237036258054283876946018370792605338053917755142559781939640196991273530706611989203559933414082498181286115517809100744873065941417702268545000815433572020354357402483364620133616909925483012327051077983291393075275693802453712293223623285263859153312849809694313641346776070029645235377705017767976794909247756573323977074574645061843345842108970445560345500550788701623122476542547075452595315549553592024955545361417801225880750112076182437369113139719779614364420755578872004041074999082585016377349717113607491529679968720690241981610189684308142569117203517444838599728465690431766147161027933648834489237680434729809626955950573530722003198728191689330808682922852071386683850716786691493545539932603463071946544293052427269698741101335877438591617790547310102888106816884443800819809787509191626626066446099882014278965790533722145759639141350599658197283865308708332323758237626887490333751418436849016417711864242737579214032725691484309938466601108139422328876004864595120874336000611179516244635675494267359142873182245221059474909632925643951052377140005965825622594393970494394207039768493525277922370022402622517560896844654472184786346081012727753300040036391852914376117973808004329520504146139188850103859562604732584187089418363219371553946919318608534633631096315123387711730699925358504670093178613392569436820374193429793653502878147133660446393352650661907585617704999467455900906789419531919623752371567446183972806219663022281197684951371842537469532922873362205469146522443769447661791072468403620301639101939764170397164101708550726062895657093357242796221751513585130428472141736650233461041032991600648340510306802772875046090018688363470427202428246952514801712072118173250762896094527081124431710998674072186386329382059635774204528552779171689418823822422712113912905722879077760197934954666236604843630461049177837327939531710303491153572478360431959101931250000537057815922121389172431541933561614428572251360339550390123498643248252474017649929567670936647037626549423076423165938368282632167766464987297786387982672453745889382191172121512965447683096034740209291445101973231800995114106803374920792479054114597250911471819797395439282467963830941313423716053746457731918225614442387726372089001772937264605112016295598718444863759577513060585941455220426965633395223287767691738761836697389244577918184809863764361336253170027443940996657479510584784369911671739576146075492195726950581032819344529617216257923738965912851871770786555670535403544043258222612629858124995846191565723932023016688522195897463521444917822440873888057146352827721703883708948239518591720960759643312692610216326475078168914284323162162019029518918405067130155378241686284972295428435460466958905908095019980437899952815804715321979872625702100788533446938070851335447270478255728423618620559415636368561573705654114746589958762850702568769271394836470296763523273364669481107656087622152226236961854074721283226740381110550220192622679342917312654549641518446674388283192378437788345043977262995049565986446071866323423006648353233230730693362342676697170098482057702596238182745029136753532628767191086569120181150922783826885829683307167538262395886782474994845662690935456548949036505019041617887317406539202314777129381880473737408813471155796212399399494705590485306204238957130167160988008540794556189448033769270847049174492182221004202995983058274061854796915598669849387778911338457052916111639789140684088208160674974850381086608686755173878588602179190606766815205519702517695286847255381831773103429528885164513106750880962493844842117406159725027575746157328216609278029431502539289017154100939878117297866708804697531374399273387426203868313021440028722144406002796308262484998477054424307796182253574404521238277541751912908490468388680913095371919896829285687468172874130503900325800847093104970294165626138005856964779787290208711491819208993176523491899019037136658599995449395494263199053773221071422326345189907549006110453484836234797344472856843008260525188849215209323384430258881110962629513859331213328142949627996054970889007405566980225140360851399717789157818261028781148497631708165140651158557823583024394654492401237017358578701277947705004838450168573427035774497162299914433009221707283163038425657784002773966617132429508869275678089434091301291907787808284883578029343134090108633303042255182855900572170446487618229338662272695886738925341141929829947073340112847770580606066113719435986577257593289142527398582908111129684793977388341316868634068273603497490330057965115677896962364472881322902960753989072659591633156958743021841731821006862509495866215287470965945717198296765646762808005477515819949800873289744502113986714968632574418475681281312876121728691203612511826083660578749152893425653127064429153243323604749186240121788070799931733408718294857669035475097954826604534102591930477051892862088207900570567227446525953079283100886963050671807254219747466457885996904141121455337613167785732243021136292726967716325404038064366199668115661806668990885100659798640780647270452943664960266454048172888421953139876093086882190591923824734020077699133694266733605329545161122010498201015078611329509367286702419868063213446569701136158160591715837155659609011485792960612423191708570409458957449115663396411762535502573561509375217726352153905304575266952633716728819891854168332560411331058347037478338452982470132027884697250292099259441635751705663616689265144591629051528303202581965935528816434663524833610632899166356691853207062617114097389837482638457570505555123402601162427886442325297822362743603990775629907365178631851561170455896615960577129450915615512220343833065977088359907221576584778740170204742282759362528769316374094808364559911542429993107673273676409657705700916500076687647250312263735512513008680240164915144227989556104913885313963075980180972096469589533645041019759094514988693789548029799975055378381306025746543284745362538418638009724444148436526516113325896675731637174829536663099817584886348840793915220705365606794910934517991982616280697492052012273100795172803945211050514050704587218241669598441404690171124332144038374405862126283060654683101634998991763887665934676893043545930927575387102918655855290328787965373123585462549904598908846114690041381558048949145665298481102271983573840645487648033677364655318567637341502530217099189492571423071638461876200376918802036456866554464041521521426361097427140347455113306532336911930350136433567304641788311353783534343247386999256509641379226725807781948711016410886099035103806808169398032263661157009766018690413474731491702943461927285456815573407467952113626374145576568147094961998787055258046542166957457306249353118856956818987761196963643100052006095103060236978470551478450727349546299933656958821878999813297059603446359943519396321445620089845740355474268857404001717275611595077916805876510415339420282808807805443208507922990894417856733004892981670796869992978387994324617455087810849576545141107460740507552317275373265476826776414233022659443601545537274155675905985633238213503047331870795563888033054908434390726446244289758079895082084313224473345254103912949752366275088023718807363007152889109685363760181429853351680233327956200513589620159953124432357521076713986378775747828490061368200223731210722338788076513139754180327484698263964163882291067884755585616690112954589985689101258171433541367091773412888368456609474892281451283329238055722640948113143691647272996823246609297540967154297103698679543084779982665742216903824949368998361775715068810900562460230917889376758388558314367488574508570145283413163371330048817404805778506325582229575306539815478479691932590339595431774562312749840213800866430461462466152509872146499092468557148445583823276396867417953396580393833338157274919643310940108161369508904451668322231590569411403349949160680669426982677463050124618479279782620585771526733302526441268731594130563578632241416532954369714068926311234457604060418171419493929218953115334086694236316640408538326693002047773895605585337888982497900098698573690586112337469566383520655892924329125710919347075078086180021979395017869098059076272823490684580550867891368780190795987776301858688100961596819167728466839432412002870575896675898260360937955610709791474688846593414442118730260027992386341001390075319767592778386346577273303224894477456409703896556915675050236826769390709282517219707287900096146802300628957222802420291732135754296877613146318284349077821109850667825843829030237383492616353359521582760139534017780787437570925548649449841186118810707509311087148029004122304570848098518999385854339848949490232946650463177877595735568656835885704222739791664088874489947413125945817468969641664577524978654915174918828567710957539642097825685880820549637847743372060589258158187202676900072717969503588286204275660427718837264580462893661982863727924653317725644609565431997972562060876823554487767572293288664811866429251128572280871088272458899900543419449815192900225601901780421393210033619587119799652572481042022182306616984346415699681246338432856572173839562254324789063745523257724988771045692102558440088765101764741015611953624376925542807933396868476931605734870862723289062762370831775977266367170810474121414109542568725294601276655398322327482476913141017057944662338433890666925304034075024662113489990682939019447367613582378765322440665500919112008794495132268046621805941654813661899001269873797711982627011957237613603734020584345051325448812818182550286867209154049331120051808680405501505487362146081739544582345912976519365432755349349908458850537133233459428289001164215806233845796272025496949420148319201109790251651249703649007357010449874725692315678031364154330058777653191172489770469576353294116291063509989126367887167630184102560331766242980230021214607085448948100935831137596093814289953194924186253013160494185174681636227831166990916377787292611930913838510230451385999888187836527081961467951539564763276453170392320882948007020346172151974913376687247360948292446601859822448214331805204468757844060736039375527347274375425334121586555775846195648098104260143329552723881766738622550010183544455591770759329380478607564697275763087918602135482356431108214017394816473348542987288189304011139886221145935874294734608639702306013175579525057696728814823866951080876740307018803811697526346783821335063133959898995062284265990670755373277076180562824167978482243223131165209296948929538402919692308033001505749669044682578412528334777328556317123748734766597598531829997844631503992480394237445301940560276226515657881761029857921333679999171272340675177147432964099516529699956503887046740983573237274009285559260965866230458832924350914468320136895359629227154518415067017760983178973138499985966688566920135293017753639209601250804088190153924314213278701682249105054019265348791997547663362107149854435720375271288367614938962210637435933460009761044754181370368946129855863262575784289689179079535424369659112605647727641190128152372292512072467475103698051098743021963304658524291984623233101601541454499086585658454177137981639141293606867800333921538068319208038220849894248772007980120082935469335875377655771627896029509005456380232559345851396501007048862502900353524379987632885526693416575291011054804390837625173879830653772277536441482535358565200801178682908567400482608128305156957695263750388956542585976899820610199223116884784517671308072285926096032348487574057852102723922636416209722840415017244332644659624089997068194213981955929104641959195317447433922722191839405349774090420191404046552205955271329888832102170311353462505219562847925979512848870201782096061891732933049310166888702197551689849565331416954280501367452658949352886276964647105497201669697916910701238245280617709960979673429689970484003061867624111070740179852389148285580203223668376402462940488425122357701709953353211687239526839394446760472597155797465454153690837540060836119700472621763440028973977562714766577087429110169107259240455921816131060060181568723295670549169410502407656380973904600748934884358893833310202066284880803547998715994440560546099001695249851340543200904689144966345572409855708036696785282146860674058304634786150129035734377441467892851752549715099926265804483321315250823472445213695127498215470095950962443131273998237463166974862258676564498784231206308375125984044891667061991967566996042468034495815131706796138522459030160686983424704661617126365575888710827714972164288711254304859935811088553892691523955124546678987099214882307653082175593997772725653361818738055714396262834155884923993973719698479952961826328491190537374003861607320377939984047794474005218560764444674098287142878200054231139311559967438467662185688153917963160969779192557389132557954394012131729030500465507790850371391614462915988353565636326720085818890650446589054712700190295794037485278247975572582871064860325869966889217015224482319946024166604135104114134586116820875168964680817349268004518177468310317527247191996249400691647050303555717849148570279658070120003904026325960066736290720806025940223082089745585567180916592712022430796455740208473056181055402016263789532564224418075300827144948221727136855277517120963154587339879473447768572538281466836896110329325934306576737256766465322591961153139051869025257142139962431423053618538726665740934869961262289713866612008834476094419746760413811668224464219187524290641511764028104004581276078286253340161938576965680388847940830709239234905410617703415395296613977948193108332443407992962640100817721351423476148782731343196202467069947953577155122626521548462389558407356038758197597906198984328839616853604617293626034637022930111307410609025398818540752958760409373555222852021431477499314829660772187766949204844871865157452439024789609821583155484728252641350103579320290005895364393409751102982327592560438201725078149605365929117963971156548320169894708676247973853230372214398214255778148101705437136845187316440932985350947586777813787581973116068072028751516143652732634575390185447873177233936413641157634607481499293041187118604646466079654155943720942806324108399152607437325020283867904086569601308689575529289673701917800784540149873779177853296158995532685818252789158998585408912102529966305702021907880299707411890239338357178816505822582966633241947580809937568073866299052512276349711774592876968688494644225570872189920933157709318839678782558490183555875561250267584075744787553603962377499916772306055518421769158039668602652671551867002716661185109928203603357204402906186830511124728886117960638902002608192801223700092344853984285199355080651040721523503864288423369956667436946503197088688143199257249113166919098987872996352973510595536759347742453309346211928360721423177073642923052181822055515429855759449883279810833600218070685563648911626658149832050296528301084754284870439332503745779993004091452237148589903189497173723470320386467100615013531731872303310417897319428038192513784654795305063119839855991936933412999726496170632163932390706021487234155117356696107957791990197248685452724190794416782604179487212849396988063969261653682635747609879016106185311223869543591506492442303570731139545386872277348276190550642676160601549451711707295516184046619302439865341743035624467586381076084857944365806760741489215090409905361905567556135486924127968037470695631316311141091391091290537902464891695932280989946196759900153036167872744594079440574134906388909707248022619994037488792847219293049111672782301103357983719490260767720337240164698756709411083858010039639062171627937664122667731286229525585265021881385975678197747457353358315014740496981297569920932783829139977535692563608009631850373108026215848566779826537156863966163459914195394996635179594294501518479593289149339835718500485102963827031368353231322766346079271952137644232005054204187538073658580090040630042523266904222832420306639811829897720420045994776471271356614641080122507160204164775277257859840615066259247330338622235451487774423052726397462789027858697007494015957001480710702009903582709966888935300515716620484584402736295846858764585875209859819830275819447926789814827724388734981299568994741855312426192086562553623886816877819460113554402720125352496577787582620673928434432627339133642214472172967441442190283670110341877927927122138042436785404192065342451763194096150450803363178593834769339457277686656745897426445630887502224267924892173869981507788206816462126236017364671233054662895920911881617536679208922187393032195753209701174055403690898212087753878866902480728881680345677758815564897791851955388209269774669107239262007966883260714379447379433156202012097975758420109236884154991003232134730543056319758808614431544748096129416831226494451726917254158598038344952875232719012539809714413208159241951931894091759700836913158009578766790525835503298667813982206811010017569144864310229767847400191117241756990814618865062328559853726664436986116322307254318567103270470401261798169419384720207307521913040340924740874875729623357094479336571565572226321484547520406002613354470549840269936081042669590455066515035077453490114960430008248349415946186529459182590005648619760803728107423122309476304283810445603015682892201597630698667893177677974716227773254476937921757370317075017034987850381216386482322600663969829562575702887278036629659187475213498696412050905344961923501545536135064738036374885097320143309929826151155315926235456978232023700701800622839665806569570205610602716882139621100772309084388476792487301905485673721278023613752433942125239431527171699200076120529808775430276731954444486669012804184334821027693066235277561891434006978347754873136270652499537277802968240575387271498299898127743065910955106616746408696009190470114167754396271565245018178899570895737503638912039405216400874224392893689100034443692474999259703891342889577539843232307724774563341329718151460037759685723221740967826242162342018617218022075423657585346944298677161408796920803381943610834878043446798753807946606233887873156294254559614654629856220666888779730446488226961999098205324461362396501650765396376762603724532394778698730992585237755460289731533046458483820145135123351364978850463233697733382954833665783143772180524480035577580291036806235483968799144578494236548314016195103966281249866187539323078244475449821534588186775187315038799850414049828780974468082954652829651148856824184431011501751568783989541793807349886439966930960702902523321379761383008804655949527387097081597084072558173744029672448402820333316667561573521679525970754923413829722058923248027837272006553239034262856260148627402353028426275090928135844996403934872073863542963799815639226710268551179313169351745053169948173153205978956705662597528846648323118941207078654669343847852995612721106959770385007193216791657801616510997488820153670423312813585296061679410267427807725659529120988108793684561421599528288376501203006297664614450346332768241914108829749800964866242626483664108526325568624716444688271201291353355274581618345891587987395540233007144465740604334953590530364260130718922713103229381873247867043149088143286520047973236311366779123209547503952399494064557827990323013562878001767388369429647183067862784204159164764973675244216802406240547180369330033553514794135253704432228389073233948356578603571698757810186053477297858078310739581974788733011711945269093445447769512063856852073253202767482492793660020878244072419063288890972373554566844115846711115890773960011077042612894936422111674810698646826007173827066269847633786398968762337315002442982492010106021914753917372584770052072433058376323821410890361729873387167831802419067161292850547451361992524493234980408288729887968343481027393580158201122712702174318789460472410218550084662129785285479233095190091461172376175290892309923207984656799347309098630284369794342233612707802649568234282649990745988488237313122816951295754160689047114115638780919828445625721326399066591962133218393533242320360548070100537197069751039996050976815787714659995413421788796773223982630585963310443684267532682124122470004893370878385415937071852639420475638036568498846277119098271869811743261914127282396568050791989814593720395090602807856992906074069099584563117600803982088242781863744198037115610778221185239474814259374450836008993737613223460469568775755692096072758437195880606650027856451297433346778598072702398001526170747824987392950496103722528771557985332844500878752408116786070322869891544994239964846329227871902879771816213955641259418688594029957366284791752786816421730285871058496318691144391739091739134205945878144747717299130490926320116098224925624890644399259674782793733727982936205730514566856645621961115626242627594496685563855534276996007128859924353609742780841614482630801447809013579891168657417977713731628294245476021313632606477009625801260508834407172882610275598914841145507861068945796894636028427114883221792001529681351397516711158591659936581493643382793182485606999152419463801230291721736717086673718935658933265173638167558674298039533664560573907059426485246102693660977377538193692582147348995683775162361214005584621925433467189739865203059295347838726568962967324472736618469523398893574456810208917478200517311696215995500295916210394189671097611190278595041182675284295800232816577784419846557284826283868667341383191902248994091306418871142353080681122271714814236986562871206097675274609355942492021863197721212716394388363466650684970864677475095683757428364854841014684431190171574084695409064563532573236503283805298647829757382490096151170165987783426515897486026303502538322255089812030566935303655345398421101255826396093129917852547570741709102665677996667138121344377988332664204696451039022463261377339006796917747705154494359352648155042378441832544840588182900938811330201528991456651018562762887436639421263203595321117580013838781832229253525868358944297612568377485715364178437704149169174610364888821646427218559792932587442898551898032089191055870405992483899309030176306257538480445215074318816421159990921821220212574540595468432729457952685773454540832265977603342687613005890396320139838775577465950455845545334736374144163618279360869340956741300385771954593393974096542058900754362572173498166236317478854363282129652108039827270290479738921753137431441210659195022030554257519972344607663712009577365853639853611275188808769290938149797065414196219124256944143224391396866135719138742240895381364336535562865658871335714145133936557559817555667170931079233149141286149941089144864341153801892129971331735338563556026560011869656235468783564181748646249844737623512129291102727997836323064778775140001840842333105628719265052555655605742211414537431772632814843530810466314079901561411926126367395266578564074998584039677320467617731190525835068597440956904239129938141775894352013327334912057089802016611661860026849982689433788467482890046115122101190670798348723035063566820958494643927349755554842385584085674693949821327789206311718713125611221007830483739023698074899298563542823986937265408647647124268836202734798751387469789968519645166932574278012677207504781727651773511728384837017137030305710550463763719141010694005307055328981687862646876164753863214893285214791003240632750323582991285774346719277044195652048103656421443262618988968764658848831664997627340814013003405801771934716547743106014246028708347562272296326770004256476369985789719643865981291201800483418194533729469214798587448013479549101617227226301121047479361216191242875899705336881995085220628805189863512887544375042891506441976554624325640609520624174007810841198156385839703426522524723062120464021668198283931520861647919948109249414291069840990255202631752104538052062233843318564040363684628603380741416229104280895883208224160811927508229132314216754039345014049782832840664983519171868275642828619401336643041063299161038613344281649679134886367882474254587191202033059337129763386419723640311157026069022485572493891381152136120993201233602737945734232356044377825364909992124425882758764329195158741234957091123256493811271618379647502099790412938591166526516833120226896247532451658422269204653331292399434778638106101321682624424345378471455346760059009486485627257798491111975329687252638276342759121627068682645900406585745527511987448562528997445696148721592657288279428063986851055650826150068673994113781696481309010805849942493479625691194103218068189090657320999838357289515796713159698753197843282137920049877639538229189088061433311930597388837735607840744579107773130145629033014038319124156900074268733756528353157156537657482213205378494241235249076167430178159653896012448560409255448577868664712987200492304389073021142690796234152843374378711890831435317369983580144124744513435550498616615327626543520987007542527271357648290533553689153770596681022844723907967220136051285572354030365029403949560200905535865896966594508154269840079798573405683215182869728602670077476661328583173720444650912411190587427906280192991139986894200393739629262825590155601949721877588599645546298451815255136871796665880428597186275778286210385139275614701689312681084531355628182941037855938127291607167904476172966375964276842993890486708939444328304538272150954669531887962467806534550146534820325555242057359451545372871325653482712663697757037007471426880637354530141665875986568283435044407788504155358940878733418165598458027322301890995661406298632527758744288537753246753332629630967411323871007624340730515426901941803663297445787288227288067954581666047459436524904155987332912852764145022059820356282678040347397439265891835157204518867171386025837690926101626274673961966630249999403495452903097959987299999381651565623835084006689777064904262230248722342231037839280861712248970845113493492551646473314177728389545109263148731646627944358030313379608038454528471553008411802124069500375518717094247171936386545542726783152298987047220254163785210558745743472392905141109994874054933891087872806454928973528842875923039894465387965308740510855021884463222304292139059076262291113541520712270930931548226818075765829925828366777766317802544738445573478416215206453174160192475617751495299720209367166483771246836249740354603522119431294322548762708970094641172080845718925919282570682919604754713997964283713535319767085628538091068166677754576333367647614201306050116483389922681922943320713218313912012980620161063097127452124435993213583287971232225773190936840961795236335918454706099798143942969622292450169328451374119806731584769223520208602035340864246874675942775217801649931955738527559727805888587580654983590566029450500364914411901702104532584969817552610558789524028033346915750295637855910822483771949684467107504730033360883485293785461656403747381650796265523351714573334991907731505068140613871337715577074590524615533723827115612612051584620217283950852645917456102388492389881115720949334995761605449159440384472065370792624199905235391283426685102809330585892770515796540569731129625981218175911209877675597661300277329987970781661920884346301137840184704363091794568841089639764894670767204094681372067666768105496971030462627668995622354609552299832166255590845149969044828887775193446626860337623668136385221971038033515991246974709227955453473728692934073785415643319282771730693131288814763692938484581387221398531996462030229888216086685853106766994367464000093796480285542015861868132297825768890546796575174117977013056224933805964218210051685589333860871598704591431258190291631006831052932536999173953438162297944322805817956574212146230404986135183564005436668399237843765688949461504115230906438357488963437079035261013068768087678918511546895809595001149433946349475141920406347457345588701653536899639992483077412697037004746811903803355316635165915859726165430103150684472816151353001986882688153471153252302649633015243468513937482570414842060089075978468390293463564580393628113670320370281777824212370353649394086653026345793335038011876478446813103557600704750866434461530698210024066753301454238590932893685278021189516390435538712271293877024065068152216408608397093946069883128664628037830023419696944851152700956531142473428241833299451576288889656168921475606317577679799156729569995964425675191547783543742400715263803266538803659775698627581496729659034596491088596491713775116610385643854403132124264383139891710500453688182940590048574757836919076140242559229169232572029390874909960019223636758589279275042051001314899996075646937154717785523886362126869171844163617222918581294185798130221103691921768556016579605691988157757684744830344548962011037753516644785888777339445132663964686999602954007636689695491947919265842788255913862874094556991359029296199147800112354032333935772757792730753440719831713757461202978172024174530345109759167152624469909247821953823719079166693084000354115081181784150820043016648160401081022108673766870426587016564041412204277763638426654661841648349141277625478347861048262599731046379629364764743812311812773487728629646701174989191734851226501232114226961095582840931323614980125519455579185716424852043330831257785047470204758004097688687595117193910206075001341008910898449623811456669810029650683689315193179386500378788607849605158771218205060222700274881429663587583630653237715656820890875083771543505683233772756860257401581697070655082596234479167122365164680683810691351670126532878381036704608512769963654511244817326443203212152604662409467609509307778975453089544774631996760989608695429119358683481580148646477074370916004646068961868542181367512662176841715190936226557418573799972456617888165015871422314790181037263451679549006055020982285418687039489304498613118817515350223111225076588478664356575566945264308604126736963882257336994415949065261322552752255045954069999886792757507168250877201030379834497602680449347123663908605598494905130567445327232593079146941397224983901942291517856334882072464379899590423952960928792014814788141023346499866441319645500168635752003700159231128078601741218904968053226129721768297565648824576101267863908923452408885424682968355756836068064362776063382698231138160295062307011436649040664946046855299766479128610900388473540715057888708547608293849356633709538197669568250199554325828255498904311454737334115172114725228531009903052203828109554970470355781669464827284814790220854807256748577775019379257893200448538385264736622178950344069209572624424572431108112892841771280835397898527023355681565191037080166241783414024417099279734147532193547922218897628668560203226595408742072240040492906991091089405464434489859611349617696979497033896640330481107500428541699232198331949286480996298320727356698622154344607806276586824938592053195425853307691612996198127119028607300628022430227551369358879260315667865808154813481973176630268305488215092385228647744249953533761912821053438440588053661706479287273577930095772350890668388397752951722988323228575445987238474625549435907440893617736641255621363356017632520527943031464002226860295439545837720769230379543927554101584459208728537131827990279021804145162919812936710702268337539205670733579161752779822109094733348470129199549426297494338639890360106258745529321242733471636409915458623478567547285213922105829385834103482539719413405378430789052661906590138941986622037338055702895017205764261949078417113105769631092695634839516123630192902538910475323411981689009439806171398545861159365694381363873782873421602943266836365226787428420690109311178059474932372520704012070016564609084176891477505011117560760281798405632504649415843997838266848319934578685650027763869182930010905357758055326688870431816700530662074370050696110025138631770244674118402230044017413286371434126562711204499490033039004401417076795441793828152967637570246635729004620112484951853400009914520271753814195020721392495837347621161449697950635167031068066552503381674650517443997945982906784763538421349944909289562831987338143744419102193109634766436135109713181700636899380701421214597868544863614002796042106538050182075602713436937406932548365115847616146236595509504090715304280105450241855462046942962285446951431709487712060811225621514133736917567358171460268700814786632173106238826854332963772860011647544625985703585714110561217446860379175493764550124596607838507356207566389856010680428463827648438779547364287716959430887534699804495028740057928808249886418152349765463076286608552821571126724997443982487051483458855658395515323786107271129748515384543189396887159146474897929570141016033478090679096730055179198603985871503625704799316072810762899682185008826146613593714402799396703556372625620961769823503035296564867927967380065389692109318233507528329941905402451310255198036449676685494887696245561014001162160730144321869098273743968404049707252436741730729289206016356642956587777435165534416922593766017207877187544341203290891257401707993249531608240598612707907976208846631254475506804772124056870159430005216000406206574317992220287311534128435246095999952447860675697089214472570772243674268254714737484158076964580410607836638917847041054113924358990934604487943699701962620560714031484219414367412640487637812258018735242180041645780382817106159529584806994697816332933996272133284912386531628355557429892976501581528972738052683439018262898405882352979202376205953806661703508824705214837039741299241660350227307782535387019705335080858898935182407247747722132166512063324433829347282184859261264310815012979534838576013735223856363349331276162154347609068279795288433533334551052615896095443771802300436843047622332644740705401770507549788596686254975770393896812755694118585944941625604674834107722793287317746090041376256832039463227755419449392332079363529853801182304807385740015377545706940719641513847771324723411743856466282019627250402161433281382682956143155409295660371125341503511833387736151457975347037969429421875568170511027900626423344946859343064294782737759004367327137590951130572700194229741292915870844199793996669037131535646213177726828146200024380116784251814081369762225716007228619164420780605748624803370703689462400624945811530487142662927608493296224744500672165059509474720799483195668191365384928477936328567153491946925771965213354187217721173607668101839254794572294120023927184457535667559783720576827862339907146106834676117847911324736248924982130290275306613407940162372202255273020046651874089457562434488913576798961147595387049599439727194311160325928542680939771424786175202716501955007279511216605218208830649707287713539193616720206679307219878690760835496826976029198399843718225258168447829741419433763025777196124188341820472282809876606988411224828306630038479753472410369963669114435951138233919629752903786548129418852674259839289515642760698719785427571189254525244017636733012346308285728932971460466797938480014254808272126680707831028977013475378595256701809053179465606838221272426200988362348751634717794866445797710546790690617900405643127570513670288836849203269067932635651292604200042748274743696352028484970376996946247621943085009355703417334556308300300164539405687274423287981512143516312754908324665133481194946433204072093708379916623342484427864727885675387391335103477813631536947721806599106083529347852772860768234979012962005111600557947225091056988437807325828381787208546760702802817090419033087755863866936583674454705327966921631291413755960675560095326405002425597600245742862929639222910936709519747632998671012153448448525317080167511060855752257806756704013975046358748957759364583292217237047658960854515608205648269092464836113056165971250426500554825014004847124726310249384150979613425308176148223417912347913422031844454787275344851597321988475657171156529614400600549192504724359656831618854222811984841546247105630098488466352481766642612603632750493263574778361187624789437572293456836365943503110621694275440892228517661818765738771979160917013165570382144905021791532908366944042622833259271804646342427461378170089569228355934157738911711201103399021264624126332470890901362249715684128863318638021238466226814405508236830118329009020541126949431561466007259976708435411125233361206774899424186232792402576110076687642626830636171541733713780209630991895500803920112683452103312824355568174626224370869222054523272550387644206236347523921192341203612331119700694958365248879011381674615617367301281417899226995420474354100716608928250140601375199086639204395933125692858472886806211469386126248606132405676483852863217254300576378936953144540789863574385453853112345866920191780298574592439821243645207143075699298997908885284097824476425599970337256134881489492964938033982901491184090505596563118282154457513623200631288623374747809702523303271721367612701890944287532931008505504498224057811808594270606098938654985670853016210866467224890203365021680062930640619508405113260449598338839519852191421339493686697367117061534368563121946605545370058535825225034582128817404078603446397417042945957162818712942897293330832310790043766126969726794237199705343680144839863436340529357526538456448262727385162895666253018378491545248752758053649624811784278974425394607663230516835491912813819480713951419254168611586514357205096454110564272495173862163742619547172637914395795863055703414963161993338788082851510892267813604733592073483511621073085393290052107285526837017453747200191623093151578617377035442261201609407114129831758971149094978238869494320842000393582818187063836440800820304323070943787539511713104322490975869781168109319827846736043502974300835022959016003034243174489657163016966128058418124639848120214118438342822484292421996354679061901795052902282492009153859737418427913231696875936914143737172897083233173204148118851373250644380817195269297554380711661838025584750482021913664512471323789857232771132125691718984577797130177457591530976708236451797042138517735170258445199772331541239187713173138310706470354337059386483258382502487362483098654116523331548208014234829371635139537290369330103223579472693796215303904105344577408634459125849749267207154114672331156894835284418384395113399054033271874260550237834949597758557803145674097857718292478995231489900077165524552925250173010994420642969026823344269873235822368944078579051069724568528123079421298112924282313774169603325751340474558862688954073371162710013100580066906216048802075165151949488167532438568796676039907338713747856650754168736392722259591307666103331528839572935649329467843200878663787399690137720720892474513681859941435524038020317085405420036039054215577790900117721140297663381646698744624166594684949131177676037332029380032368589132172909732655232961489736062069896497731562725136052059430758304244229066785484063782500717595982954178484254314619909390648887505652062554044474573574800395293958764301240045941024504269314403235479121161961163720000482468125870394608524853505544811339701877467085227746661610991168577494643180741288842943134086992570302835573959809213368507730512161338567336627424819346468661436192600931349918389572853170980018433780149589477283891569800024511671812041326990989403194997715188834642606626170167872321048074315497321634630220080750012913946556912312029322470258154274804760521714353527421135860770470053943063928374192955279793419103733216175369145704180341914546652462664506918820430396345693894720523316846448204912923751675782569394276778999216775054604871980184001556005724508006068744298876638136254230400781805760240148643339181869041241258618745782916355299464229164868630822197573373222927271456155909581566802038012818570158898366100006050305521823942228420915977251288474763990352721143504206330705164791657616877331569576869381511208851105850676152899521401297808535565973091874823912571849305388520943994675109838931611658249209098752387819096638185652841933862402541899736216527129383472302301117510795720300561147177569169955499347509019650786785569485800355879971471622000406663633022085351326564902932109639012794882850180265048789805061179112008693990015214403109829896752175577592634992562665906541175891857649372826753266526541906249008804757788002813720660923449911703687452773856475792003253281584770342117943830186238004129376678978572533203790722230344940502988601864249229295307950287534462692874691257891413926613912750922484275764712175680954331827017721030874265334975261634865037793735924484398360454655309196163776263524240369002797428200319664382909410885387977964590975037843209891374799394841516529852507025032621542992595953501114407661462150623706708283925703095421136254148200516979199235016883678889185644218210177824956706550351122595134426954748090581267822522750891705562872713457992029982155378862402803354721501204315385503485937268706909757359227400037368964667896239220563189576216678404571008123003765297069414186790956831403407439436509578750230057443634998806271235713655172636083187968811985657585080956501158930501645112769039318186185367841362478686101386232392156222592425741361055119519424400323733859731279545788003446393113604072742670967653170920595386036906095582306665088104937709062154463081083709862157966945237679644323857688067561169815956804487929051697440920254356842296117404961913494004256299990191811035397905570551864641335129052805935211399805168071932869558883638805503359865554880529105875825475552875535607355980739658288416056919866422030924668727061907043236841017316481892689896688480491850188879007096380186123195291006538165029315485106835661114510451913616248835325319328662422540991852815167737740165727025090193259695892496141089952425096103992113972923940186668521045395070020796477530182675408056529313393387061273207413672489894874968732196395121761480014267806908738976399933924194223799743960493007922482386204824915887592854357774415421113656102378973427103107401123740100156049175969568805602331297818656020017110348407672269365783517450837751743066080615342757051230045714675606560795286040940903830982069318682295934174036700493460215201187698027995507611096090344982176268037978465945323651442973278139847329492801605291653351912353351301721471109260237337352017684659452234544020786064738963408916901223178338868535255096995227618193122181731017292757384118816951920253104195827369370340809628741225523213983123700467791810241554896088212951971239193627902055110284311172074870841250922835291374636337739015010377459885550340647461643113867144518256779827745087806787152237775114859283768220829331028357518669542192684696764971144811416431965812378378077365170694287770847026842841978296728332003062233836385048249053802205028121607810871888341110943288570981365106067552791024263285596794126669376935171249725506582083650031774672981312973783326575179827974003529219649456047032302738190922348244302916799321003399001852796833193007255533397824041757883023238107947384159741361676436637759670684520048960975325419449596704625358912935169984526570454588069414882468009448808991859983581319560628980606014064441361135596559147968164743748677002187791910718801996800048313704213995641936390792955700569909470572507079363206944188584280508371824877942507773008118838113108150415533565849925466443892097712583572224727523018914818376735854610202295186417013393988783519384323934078443448599547887018936555902437114071226450457762640840116507498647004057034393632201109096059135917718042999495460523531076852720583975234243927630284274110188348899072158495085498718913344933604668152484017014427070763523599597403400911982282211270564345981221102129376713081622018696662712153080337827711761206699429495840256801354825509826791777336812241485642044713729729547028059143825621762989263540063022921064569166731125566507626937023809803171911593366240131621847379229617516187850490816118303248641853735889010782183491593266848952261312180389459880008121170066384719579689773189522643384084629161388684839270324004392905817777406457671641978898198876571496870791114115042401466364690002554396627013313290400495183765532078399661328693227842823147360782480728154227835440080569185468907734631122778767242591783864748611606410467304909917971366564813301839376351287006794333145736632418399786725220598365062476103695932840612791129548215808082983574980590539684098970558862870441757736554910653611436169591803143602833237770659287966985795999662967419543508129213807556682540171358125280139810368912882671637657308250190121821739599770708814919052529668500080556014867892097729771917897092486858320085926246494482929564561119877452531637447427658673638077970084377778974482047145907010616322695526650782796386559752147948786711480714968374115487695144384489584831760454897626597206444108224623703760285329898683180168261346746022866504564477301107291269115534691691292706209707300875974095461957177469275805091124731934359293471438756931798541799363866369819566955072635555630675177683546523397169473018852776715469797090206045859232697859303700632283594710724061770088994405791508942707655002013299035224408880417480661266871730787988179812683597121574891686956225355843231544361582994755556857349377902763568274068898501357420199060877903971155027941149883914275054328060762581677854409071302667807821436123478618418219438656903509019215685785692842461108591773351762052935416485294768755062387648021633506548786996126468578189916061682671712816980182746618337180047624882042556239498992512276222052367699255853260759950306040226367219771913109723056022446151251451168762008147326463027707935215762371541989355035635699855586837011373737195828740690792835649312122612873898504892866381346974616510722802782434146683907723565561782116502889169815785582321439932043325343845944202214430372843221746672030214108320217133390485329879402605878576132293398997596439379145230653802526346552735006779721864871024198692617556530498275376568144704093597339441821632968551817639095024841739659100392635198368928636611917226137292227997134104461897229657410402563535649154721498059675301652407882135123677529064274277121484393136636922108356395628925877127829421266348594767104431019322760610339341647442650457178988867590027205097034483576774471795473410215788811202837908670729020609369640688527428757871077068087722349929702910265797636603247846931692031269882457170192412802547775726212124064114301253853332981209538758908322235975914369093584417344330398074798445827163056571423843160226707626001347241575373941384668541861947412858033347233621655955090951342698201698769445340961337339559072160319338376918412890205588587155010686393733660174857364059207148652715609059152053503194863051420726750185314860509532143340442680058399033772684569696245775800931100666151537269406257098876404075561318835921031125954277794380184361266525062713082142749384958449762130403538388847714235230932257185702732723531818914012245357739866878240375816483485197694378542997014643063706640708721848140053595434307490918291702144740075674539343638194517792657177375032170327406778521403029160807556577691708317393048062370964028296999815743194547807358756543269596448466801582322272209225286462545169251681790470833629021865947245175518133581702968227748364457615029150916149045918346421377380426678337356340150613636890727817295834408297323478838566149921349890416410343142106642983707480082719255128133528304487221223675970475966247535710478813720211664198757436974363128840613967094316355311690071126743744308367470964377073763536730266468043173432916637519102893425070656580423041907176868585239450252660558206012375632745560491571533101492164105175046427860414361999887668235591759509784016920487045948798651605752902466267251475864243149567586839161410851297493584339947024236487316177893608372822007706633956079326540622838375217953626636382344925028611739182214899138760700859643771138784582943972099862304614959843558230708729450286974160711429863989033646331232342919323426859694803796570897564954423130951005283318475097684386158681936149835801260271322296184967591722133906348933806233499265637064415409288587288043987412893440131005298349062044184466866050471800117402440890251744071580086801966961131836617947242237966738902594228666474347267523363159259120608001286799840724240578677873273902507412715082339358236770027746173648418586075158403533619869670013171952881596904927295746125102356902758634814106924072822631844887075667973107659350015949886169029204622527655086945197780246855587463862465536078655288798497162230998585621030260948912620401583119014201675838970847916326381586716249999983446544282465387985166876124746551098323070030493437170181235910461344777277664202349780655787771048055131399802238191396089283666179445950337288088681219436811864283426324176963491810465749101280564971539946169831609237264987842004025607078438484498019214579126245273953666357344157345265312865756366054153877212940728921176590851135498979122584456660118512167526845652511081721880421478453061700013680241557618400517058474203570043147593119766697417043256705818666746431608448732374742606164901062072864310798808767438470731368069020680882237903981786654997998964149125722026577580131529606432121410964853601918295540016786578717348577933601052478393221603106547079332519330488690757479061906360251937975925139221615673039892097687099293366653661304968858979967966335021014503552232422054862996124731480594644059394120559733115699981523716989976555837291928541247398259196111764262101304121713344262903288994283575890330398053586718042476158806983509704090501555631569356767996787006465849131775313294944896829024055307390926800847194990732046722335096491670846013711037446176723774712974730126850267744792407228355559158085533396851935835859321092248121403119411739511140516533255696379192990060457466922259378564339434133154098119860756424640585550225767945175651218762789813222427138688065656343722694286917954602112058501658008656800883385212900210912559318375151248117840996658903204172806599081322937898951127785560963126691866769756711019060489664011746424626006175724734883720356320182984010942355128936049779987285125024143013834228796618008094727570239190145975357271676499840507989981538041913425718206878792231758038875286135154279351462272801675440380029714869273606999586173782132080910212267486960939079087531526470620094372440185329243768569031645848350620613132890104654378611703053127607788425289586238240375419811573906146308206975438486186485248087719486862527283866199817091935085826289496201849199230114030498876657962504745106483157831349172942127671825980202687169810019063568910530267028455259190548709801472539401659703383205714536020932599955736453762185759061332022404104983646369546141090991622729697262088852404389246816400484324535631110614785390331856985681315265516564431957529570645407646675153482687541798712530895904769755290227412649885533489444568799913842749920584134585550419886754001388505012853783372264783807730405514642358318264544680395725267460402589169455539357982325865029213487268645295325322230187168795049559654848200808960185102910369307365075556235249999992757951945694849806188336946316324207463845080318772949224301381493142782161940471668162835141738606015006818232366785406948348309739574328263751896971590549658009709217059628578107983725469546551516060789287691418044718930419176460409629246208218303257160114835236920388084094739300323157699596561802866398778493513247440848331714791186146473746066560053489121672032112363457237782077107074827178876510373337628182690656225696309615238926179138095762118977866722880905150539412858107990502641414983776261708292227104445035207089749051862431863680052606142439226800791729476236867465257954416814351603564812835307312652213030276541136878714800347238234876744758758698684590826896341687621151630076416329724774610744453571576781417922377659499729983072277014187260323652792793591687238202661311770595642771926666134433213891555792949402969689906840082277362280242082256081101961480905100337554977802960343365043765872574198172431066469516532365518722879681902751221524611231036725950922716147985112814108494417030322939172819365589369474630741821370851999663401187982151246154781001854234126279608550558318180371883059544337695058863897487367535856698587880191093415227320325536403021750600732432126207310998259375948168611002675392488566607117444440476332896238890392208314348467467346522625739506711413780737417312732383813888304093644327981611373893631459836634504147705817588874330842586832120580779139838267627175361898722251134626884245978664880257586161918611375397765097708981587378225503627498306763746751585715678289138683161196909883140980787482464255465585562212178007660299632379353766442523122623551128330988873115811017960783054326295422000609844020157559496005098876935512958547814101085255721389667611501514255942918881408605045062091897394189824388908372190875238268227725427404825483062472131722583490386614582774971333529671275132207134998275717506221453090985338573950868005144317716514014906501449994783897337043335650416581470273750441902269543470455363197781603162926372588210531295497655931611590755384054093145994901016176469881302541060001374992259432010070364238385554196570340302654535570314795706050012106775589318149577646830013193785769487558986219253709100670037066306132594463397284239929984049789164362458777879040801134833096950914091364240479518843714492880514259806249322974740568579716008622523372577329512221616419598781415027264164431917832763385650475218540256684814098764685245301435637956490470026913957917789536482476549182769255910143964594628633791350346207083880857229467790274335650513220717763349635426176451217145627181672357084191764844525832932260895300811259010113632373231879694248482842146329928940051833398465682476793081577010452062923077525433075955769023056985139008282630119018660693561211679216548393904303916812342113628121779927590192969614846994855475005285266390895878118874629104520450426105548237410887903212128548915593961039105024142894000062681495863386365770164395965237970840450126685512088567845090100770287525728060493347360571240374863877375332490447635764162506523135835754743588069834094386656008276674991187206400778162743852562280226885875120467724702246258672983059071676228572764280046445024095356873814651389270536512059920788820548068155859602811115215775622790837654162644842860324994658581184349816135068770983784215237168173857498569507006990317001560010405455161836314359357599834168264036311308475538241550701764639272660456586412607507090693159924979899798459733800331461860722907288057994515643003840876655609310700476871657169660292121081911239679422597778459328274618290763493612838095528064053089909462967110665714488000202185244597970876483202920751848079795801943701358724915803133465835075563483325676565219946077009542019113093160446052256023541720113149220999483105508841523005470108792170121440758920547287311915339291247961970147424651740813066784465857588022811418979250230186701522938843778794558212285762715647115968900865287128090937615639083307665019388969685542020878906447017487554065604192756879572337105346926673974354083695757765761592997123003774384758719131482731721281175230142406233369892366993729625864722588417798387942849604600183058252207677662355286236417193828296857418770879630298014134970932856381399200897280410576712581699988358786579334001666530771708365524461899430884151858993900389759462303419852640206845263672960252880367789299516667733844692924730457192659374920182603089668334071461785957490546506324419000335589385905504193491512400401861377236980980125124671073403095364488224874884713184358117957220293371732478965096131051917144291739227424409377113695950802052621321008957718924333612395152132332398065331600224975505723260980676210713308659055953701922408352444718205884514677369442523439305106627195963550522945065812788859534867748452205715165927081572943399321214081854800413278648405705709879935596727358387822353067287579331555445492569013296342559934292350391925227902730547738642155016704772109830763282256159568074603830412622788266275216071076403567061704329492799518456436321151552914602894837256960077763785410236369660386101259709889724370534633992476797039197010562996607584735475448495513332768167940539379255443439914843041549928252258191592677003125389262851996168520346135287031267446273598842924242160658285129464924440796667014128362340104358077263305999807750937791015410125285825867294547132696266888167875331583908841282550290554135991213693085774605211595519938861809489132115021151073051482337903823223092524715022004356288485587064810178932237290082740277897987002377767377983532627261372787176367619689000535278932395668819639156015869506750722141136253044241821886757910213940396978443030327532642467504155666400202517320109676185904821629959263735592547666588636456709674056111453002869740789822671742357494087812034411603319977298051630159382722713749608330544554647622427390997245525367180796267428507776643624195683920394795168839331901174339851314094907593297402091938243703764151888016523111386391019792494894263777497078671466146535715670947293600361548044012132732198757237189004686605904295423431789569407055302440594893672043418520425222314137119292159635414272662130066896339367740803648280485008041025278806412514121701954140466221311083444545082228002088793556488440992572672532526101462048995120826845621651125063461878158088271057419271040030685532368126054906139719808520520688122383027356072646544544086500092639758950758136228151586843067758343166120252764112671090620191374872130006953793506129590885049037145747543957363171387737711496708642285950339177732596832683421116140310684509486470820002150429144748126887208507516462614768193300657505127409283959842293146274912796228861525283138523561467063318868770249959015262614771376073675528911014048345257710952889559404777091908836385765005622568598126194295078523899479741380583350366868113050620845165620738221383243221707736864065984068628495118785592752720671258470172819012791787233818722522220367585906946475192281748798267633355864688151617493275538214962437306833942802502819643518556136041124907656429533696287213019054839684703708174921834203077593549941395992999895657340070283408419846913695894120586006212958463804280485648625001569175901173172674757860888148454388723287202071243316700130475102857660728438945495407451568410916528229290020958806718435994347334554481221749375046052165077931521717044622198914019779787622791020612648169788580879662587921914856231868199047254680775038072504376346786144788682935331157222328257082142695119547205018095604073072089752894949386370941786501825429756132731071162020419630259738606008539305423010089021975318544744410351912239895319984499722384744718723152225331730511945340484454913323352811185844836989145749249468172226006242133741464597477099906613437863930710498756480346790889521762656888373342821958767222810010093377997999056672837234762417998901908230065449493506630370754227062966373450376687333047774444466049802195265712350226752901119256326321271530198304369895863552734257366959495587022352545744645778160884991930888653224141921806444475604607194185358395142623038106104910959845173556427086593225483235252380747047092013210595376434411128398982716493542521874009778520209536210239873436027223499371912087766596607906170773799682721765146187859014594161352000018368409840204963831043927673573761422000560152351455833870907130381247812237440254282260814651465659143280891389936460758020337952042215141284992328033902308700675906650426537756456721181575372018651582458438382258116067012635618592469555603396390190746371143707841724990114855486241033527137837377224806305391578124115088380962280326371703140448942724299823105015954127029767025300049792387773711814880262430754823627738251044898644338625396804202298541392930216522055555262461277688226229425494189702614581905124703255483275260588981394213713124328909367561460444274250604882501904592552635145955562869412740644798447820312345782249268275666947794556307376587800458631503661690182939484497223322528827617415892857983377709926324531005672595233010410756359789309912115968755870602224490216486277721963653967884743938991709703366080811712014505839815454580678288039177109240559693271140481117433477831620473209989948824429001039827071489534408237201361731979329022831503916714767187244289169057954280340949236242422705223553025647873006134477338063958212256295430092524414975796533175019409638390638865094211316679089342129234434184192833379055345051686940333771372416283055039985596184816937005479362287451654892989899667110913773172534347308443381171895425670009947156927788208496741543506571934622634363378728329048492585965417506102087456337395411291057111209453390348436680702662197737327184161549008633568544117855033821420125388742594561969125713387180915914399683197877359481826762140842676269819697164379933793703108834768182496630213609501105829035844154979857004843794073332546191019418506475848864802372400546224808204182949167409570353245683890638728448375297520952001959074350613818944542674444510605872065396838808652563962641439265998861477766230321779128553272350787891591287125652019040101288462608568504943373063121341309835502903866781747950742045776093206392819008213342626636991464126127536789962425144205107164243487471079089356086051712747010172884772911792668460713236118716876505016863420001208811047151764942583789949392175606606034571307891699847001959074115640352075461578024785071824634600925272995156178436363197268940253957780398899241427569265381430829917947752149604164378134525624655555880308671440002896910162606371757524296926229468238341187969167309638445790971421989389843923612934530489342635038020537813511200072175165752721692707036032211559001095799707675846019007216007772679918809660796773341641805422827687618217786228141941708882448358514095545087979160533157536580432176943939535634457782599015956876325880627123016238758157806060106010175325252010196207525623666957188822714821558880830790183721788136613428491829629150281384709881336858476394191257033805903090969304767057276280491491737397816751925821253626496242883204925491622166613661264395162940480717553406163895031601047817194995019144473384824511251338315138408527861442125118023212317980918844512801446727241775827020882431316548883141287107420399818217134588464799672560990299947247298781718495626274516748334206955492030003175354419375782277108838917284810245866183257670629031129093347341533054988869451686597506583758891609871219513868562914160698720887226612371875113185413072692358605440596268015319611724294550523526194890922952978727224094894521398877825297777942656849264880419224533119690505137489274426623667982369444225431392573346743032656256698285579905739790295709785259925566290485898044337383813594334722786610649411714216974886185496928267517427367651145446730769870159818936213621474679714851907347302313754948988362014408869969474886832281995697366402716630198491465535317261760068410962840679472878614308634781902639866024068300031354701208290141899783223073933111964365115694043709337229653720228126817734238848717495559507058036371598797344708143750614687737378589098290094722454438314561265135401195192774919119765054886052180068770469159132847258297365920017634319434635825810274366745823376374799832892310847478175386412400820101333523187609591490240144095110340106195537866905408919354399351572650283130708096855592112502448025348578772147271321971321381812479004040791501055508873841229193220710598156164188045049163302447971073085444718966948039547572688601436714212927615890005364370301495209146240304561388121199478526346985640271603792228893386539844533677023981397514356110553394456869270944388947667648012051702642473741385641332001500953270391065336838390552066227773953700147551341241426960868782220335086638322031166797276346669088954861811505726333421450668200895194154207761096354650710624001876034932382684730018721406969931228140764889115566831010659236871463793300904270486514752895767203641118685800956935458960033970383097484661080015531099226447758569232936165437390320577847295183689426675298685463481370740166436095122233650758143301342013034418889489870698044676873753597637570451362812607567755304558665782281602007272098622965861771850931541884510624270029142003172180249243644048034461682908524856844422997038669905580625746643258330842207423945531529050741749791358445148179659003566871444439195599154891643390321106450404120826385971740711018563898123945887290563550574113140935793655095988082918425675881967031744797333944730300621798575805677518381179575051098543461465026162230012204031291288212873734869250009262153763764920158985486687846031114001988894405370578415906574840997368644652760813242977727610996650215358574910877088603618043379044265974495334740422144292695300329651420138274887784329472773244695723420415185536912296108313743024027585937452733891325772011426475050533122478110441314452940582205084264867439665520497411292194307398647544564537849659944069142373804152244422057304394612683918247252835219059337824971464270169095250480493771667181825900497890845704874668481898553506912124287538055963814519696558909448960057134271768132020715482008470992942284451628901855309477504119836561218769827936302417911168889430289647200507978656231595230433173106801766660335635001907713380538752085378659797500256691419002507502350660479794466249511016116204344264240928491608992711386392337844661582043796401334586880282039534591779722078120205964819409883171760881891118163348362043750475784866441637959699382909664897012897490213516460918226193002872103105664573058617197528811496257733013334655090265498840718878143637102513250054000518263882475337646711897093806897848223423051618873565311032833753152421111604268973731090818651948376349169295128240764384509266771430553870115321280957063714743300063193073205738904859118160443107433164502058482546291868097177563033428750228170382154233686107708601856157161911279208734104056120854319190254147564160297562573991455458582056457146133328630162163899677878765997451029838605346604869092322082682502990947200771732202588026794645489861122590173618240993411748336239809378752050628983816478891170456744052808265040297507798172832684442646418113605012794867166271024229767265347235441308215366021299003153684110527095475429474065213841129244542265874060092504005720415308268913388355302630735427988129987994464411439356324251179831800079104701570288563328246079905561012796264419906178623385541388840498556819578686176149801394503277383872884531653034491542271299115663937805434948648618923778131176596421189221723502799276784873653610027654496817070068763538473346904124717716958204715151889519483378204025263072768798007847692303525099079006921606912619702797965509128226946358628390979276094684968331294454510220838471445108964021611883882892629404236176082766164046040502708955652698104767661496517605495079523092768189053669306243133134719649491663583960562335735389563613929952076216736636260988476872188238639006086881881027295727243818492995168264270279590067137293070838756043003163510165235778995354807436381429142941038423551772066853064772277444646757414037202467792313071645167194337000726951646883082886926602956638274783791185491981562715303523833540672096123413062701795127125701553964742811914276301411333233455429158266360574309206589590251174631060338544338415069475745679629245266486669817553665086658293363696845273427799967810712879413815221410724875240115911291477826215913323836538068314805957566087236269288060297081721909507456518775029889048450123460835697490701268585634025053894833144380194523754719646112028679133092184099991620049544777592073176043223054229724809269007910688582645086224762525624253656342184347645175126414117438968310271052368616478404993593396999264450760132571965440061248856549529590005827595677387515710405693851047284588374970017004765522351331793132819728387970840515710710628940467127134892695927736503576272348790987425324137253567839037965416678250769438983007599919948582098751490206308060582812926335450384248447104696350566106255732084711741180608382925934119139386414728945210349904407205813788655929467513177963618059310606301322424409839822723902327370995773534491032901034048128883865627061977412416237692399198339555841521831557853954635648024109569826075388341148895814944580590478687585901390429329309495124463057097518071184654064778497615893099442230445646008658548353561383086805701216240707390246534694428192579690918322904082149114301312581122071364581397453613045768868535626791478314205055933209116047463120799004860083952668169373758805803151314480076228043633106042356341237000160304419380716119662487750851326632027395898371823112109384287371610603263086771813244698421843374088314371961279988586601330178203608263527040374242049374592177242089026818196388034718403673222081514378421759342035655714983042645417747804975879188367050556094230803904683475377604879665624011741954113010195949966558330781422917592682680423509585910507403496867753774253566826238764766192054502476186026144561341586838774333074571088914542235833004970320199420308191578987710399211875188738438241865425872511539350888631682730104190938442353510543528848374616804353035377324592797778524715383075297921764904777420657147886340746045380534039867415395008045284564249819325560465566666217923959650397261514476455924328798599367303243120717095980669069704828514518682231126471210630587927293481935459964221160751040151657644571083267845847717097229520366870838952206540687438263768167549631833464960026765910554219443748947043969348121410711399522837070353735028467183258652072510810397960331039960160058959804236464788427860845786450429395157886685199000738145643634959921068030359705626226164980432258767102856537537751903371629420514444850882946330425646651918416450505421989286364996176815642139555466696639931070864365512552412768058201626202252761612205107635460439977862595048606451466748705834940404759177101924618749951072077557453152198156372369905747493835055721295979746203299575942885996392541082494160148715083436606800130890813634003459676919564978731513284976368736975103406981801330612324155707975099543367812825658397238281051661381765735469960924147310284304816329678199466939935214986129948146468990596907880805433227082280124913917876199650218763216864347384146637735079144720054188070648359499298087191321174291012575622302882163125008905393653859820642938670145245309640548510597619117228963493512908989706559963647228439476181563716432002193336068058226125414793404926871081587379119368990239355476959886789511297097809770392418819500415642557634519874129455465175636747139590366310232351072202983689536608883801212962806180104079100151714695280301199069290761875105780701880290855637617900924311629196328310956405812878742790699481015252349930888434407614876356771805156300091072827343680473033985504934886717659142174727545814897392138342354327737776723241574675674909051075772803298058578437498683870850233966884598172576940448105665675192447682875002229066101381556624692377007056205476143638763389473063021510435904118234637163777880739863743455313905203594282327850463926971282686994519981761352898525883324276029330652549681586645886375148506565383213742791008858727049722139093802784781005991068730161576522196184559716890023038308009303852297110009306968929733401451855560923715078978172549989511786295183403121459063181197397444168783097223011229331468066598343308229973858876108166286931391430740200390399497514437710021155508965288866715593139847732549242075347136862835505825498522611642061681448697796670673164296784266610395221301163059484354474727400853840235217668118178505717529308746205322711224733139871749020229954848970714832827516329249179429317542731997311759537168274334980668255635166868104999176151637442755931199778539448740321580418819348887124401764577622545675444083977605068730521847765105900975414127432092740691780180993217201151024642354470680443810675403756997056867032194882501574982448751550887654982489917817384218572868438937203219594963634373301193959291123208802991856026092417274318750278049632561800181581667796534989296045030259744073748115482421583834677145691506692157229539367444925444638105960407772095733206257000696839779993864165122664047874574500991833283745927179127785337851790741535879696085490989767358829011704483286955974610628235030999459259905870354967884431216179764544267610670940691501280344973349747811588012565475084751498723515965452009832358447686429021336852002438179641642288026356595652087225704026926949517111306451111205614003524879082168628598822584450199482149169188635802237306412859812940774559380242113745732688205769034482801235261695222868315331692749086125466479490701704452198368843634072521150205968933308540382162365933929897826936502960472871509896793015825242108302761200485923996454308253218578547259177111395947893194952724514862290996000577228449076250987172076663204989054517740071756114947955128290773489610586230283836595501027063244725213279815893842226147173294613971924018455483939044674104487165498640227919061345617499221405567587360115095779877057994368212946448554086920502029365659956176033458885234757126960389726357628794271697812607489574361542495413167846393823206168632044889527308279208270789068997170677307364607375291903435767202307553321087207727281269513811619613385396623557421457131478486664663002330906415248833116609234978327390158521283405564142991824485698444987058569358539282931069834988169164768329531733587764829373461497843420542717593396527931405675487022381330131209745040287231443986955094833752730293146329319448643546614101893551542193969479387587811739762325783162838580592168999061571194410490212861921857793929959586717649143343638553681180702011802702517367215859038953167050120954162411423721334363481060155336869143094697528205730064961058027089820136590864140602132276528898110625126666173708545988680894594993334758400082792623548384654182859271066452051468288265874333903053475935041017507715411642646005263031700461672505723318918629213045728755321045487618624618893381677038703236942209945861904950949038532120283970488475575575583295939897046380583189765718173745880236239622682745171640500722197622060785946410342256855565303991585395394355797463438252070499423495987034148601513542396746617956322219418739948287357094277020086584732849004336188547366435979628482971289654256422003807580004395301122005776315811995486093780274319595672621593375809123735842681709327754791182386616572824251118209549507047062909823340161551065027893179581012814787213595573153246911117047433528274359200355824358248746974952940902538170011946897673556280460233027605560167994791572376746809354787278982317435267218903774177256017471381709805184407838489366353738085149913172317447649952174281781467649085522265657575153155807003445106324754366551833485230019662174632707836792759534722393468272892773933163062514269868088231317036288878437125838174106046865859170303320510202893922942744505232178529363358915774193470991208436252834390313656207064198951144291689003180280327277506172292452710892424690248054060664307988247134133364056433167629930806696820123502526201267275887271118229791331036786850681629826849083536751088108096364586068870152694038406431030736663311807853692659178916928328014362918054510108044950444498131430916685137942314188216765779091672825815092209339866367254614013087045161421210555369474907754251286074333667443591394787659434189908761563480158988221982394625979076029793912938402095770640963226016153290204191817012094932582176084859111105021031685638378803575140419958982703353639738358694616371508946617513236680786962403413697020124933537301644682655670813476410963608125642957702186840238802504850133801073372013455906218101074410192603231759021686642035258840748173688262601639574324098625774060066417783538576754344027094142535125618104756766230166074433350194410622182574579299297355163257266979384570518617536922552556253643692422234619689970652262245968865423928050305634856394412365935987593743251393408128096795930524646976769155291261822349912208886580884660634551564650708454461766327697623397964012627675409249968018215464256006868201784660226874713643852693816539343547970779328478281524125367711597288794423787220737779912549899910567179628150282682113145787859402458910195734953096282096220565800515893230176190990364122336634359099083060377580055191036391538553632796412931124286373412936260754784166834738190830470610694670386852198227815279718036200020820613281791798325497486647594666158086490165416351739122844361897168848446027072334283903183489412429386299524794504863015618517952085506131140902140204376592649453682822826561780328498042445165763137217975704576908389207842450771443547735761232176418876329775370513830890600963766256533029503793098145276413865225469268500732385960185503739157445816277694700292159205728711728484764813904939459239875244601001026406324899920189496880138253462200666331463960615816351810117702086408275362593408969653176282189262881997618197945710996190935106522123975699532585012600698851131064468025982082517732626741434343536574735284537540743996817874216258473523477727826851786524710636859294504725050418581132270924182073444301371548159728943672943896815526906022526203339341710001298899548907105714608144589292974004097664559762296261248606438588399019794547444534977392944267826471582939694064839616179893126725654014320357315253374484356762975561935986888939042314304951401769731029100105982128907293402578603527916910973740568979990364096878356100528337142974130047459288361032599053597635461627904205804912423606821351869275968844624143408111852488894743928510610018200250252053692342651358778295563940220962453906782143213117542028380008860973057457971557329263173998879230210093433683029533032527083658439133790608837407131914785297397875159514645180724376930990291583198798602295619683732671917191406975856073616970840773751063237034932391193709513739685335826174320750048164540526120372246727548505700073267387579626796386892755625027459875847873879238425337922396305276973397986501534192122715063017471977317098014797278809684624470757360410332015371887653770258152802461882406631635323381326308458782380482649825851573234981962437007959038793409663812781396195943612500133102603700541378747899950108801452500123418036838526609953493692649616824229759475922494594146161410357640014655353473170978556455184562678833127290958908385644297810973366992974287371357886212997163430230110501918092113984917072410696403742486335583071840274001254153872852495652949887838444754329988441318178845611641115292020604385256280352224681262192834316402850201016096653126565873697235435619227334180817690162708677244508505276618593204821077819356257660825319234172079935861893942179407948619700904770063107050348713342760779447088484065743903013660272164885174174325526258475590727690907017429792916771505995227538050149407248749671279085513764118275801597781564836750723329763849094580736251265110776523922146387606275706130290461516392533913763699105250920794665283887683220198541423600459270445356555732862785485816035730930077914817145080150966796279163487402259916378530409916014746913652273586536830401417917116724311542615497650022710747953717713840463892812333922536011248308217113729540694900259385452733192547003252207821943780239117318672281561716173843556004087688761811652797969759403489173571831277581713956963064073316228112997609174588032236649525745640373466499057036863406268095675047920239581765707782634184901857688360079265133737142445962697030779475088300644351094936419666163846229204790583577757061524905341476145261670946390335077665407426619106803698530431161990776177114884998442476185091853559726274905230297452691098278629175219371809863039242263105887554374320133166901191471573172138438113259093224479859431685683248938475602453344228012492629834640249884618764641023726002636416919066927929979280953812960381041098986737548786975965645070133254509568531927508917632710298324625646653393416826991112217436722746451117935562822152439544242671975640895125514699921576632738497289877952036696193815566296351540507676582760986907500249791063219290394635540116387761682411689880377577791155640355656697564371999887951205319911128531054150098102437786257192336727422975704316645539480271577836854792837936269033673649284504022011021213061408169085763951990959388570226277912168034929093295275304909360304018152874216713057051396024766851739426955470967095520422842598946410381272425376127812532241462920055283837404792465575527831862836776280092711506444253385697843994374632358373344369711599670697668364177780429141959225291037957339006099545661850969891995259655529244506381576363391932536562365680783925094945677165110864061786261451927946749114019760341284694239729193820256270453672977102493945035726965979055676506355136536534857618016241476046009222586386183630361855726779259721674461157683740497696857889130156159788199634539051460531165570994385409073261742882619132755992394547177242564033737377037016631494662052615590731290620413387598170889408746000676874015747251475668115664402975254066763117469350320925414769040703099694024362666745017646603403030175154879853516633601738237422549275982448492358751035021256343739903285561669878840091524493338851197272162031057814435115360822700424232356644955894185971769394283014153500662326315235901428527070537413226063541445772847292478854613098548513234792532155381631046223895572881108117809596158248377523118176617510394987101760678645664288971357703054719294414350683451818134283919521856252087435442055227116949017128538284637995384410926243606932279835543120683971603190196083488388787030441862399937672843263692161452948338188762465243700400338566071940852537281745854071357946465166020362926202720817021997652426511482596222878325646224432453802745459670912638276217826139949537124907954397320542864004146437326053882495835315892085010857423425961237386752377841198569498251022005056281251335925453860645488810241664088473606878386448935069891317412593685525184750807394654843976738012924539327415424604724982041098060212563017505634153147122605530143705238727138687888056780653106965749535348195837434985824014345508867696849383890712699134893257143747247663122825286075502486709552263878031880774465602362661470754972472307929200653793722967248499876398322557839125576188608744676643440625576300928470866237399956939073496685318057331399185253637312292005990315006420194706420714685025884309601786475273308777248122699547239667486803445016192517347929117429757156425392515693850288825912163021857219605039721813351554326336694254759297130188616343994006047982722477337178137562812399956979678495500603591706321495658737153794902093819010831039223044785851080866999127001115870671426054291122547252551254603214152951407107651231866398961297574516450135288725566426457544470186825633123758313568155862874298584365419374707710216769930671722268846470285120021495684971822946127044338675750924755067163452373408662323293584662966000847829003330965528790437530117746043320627878469012118518445318532395583231219013049643977214305862574546889528977877494085217623845152574167537680161297168671936986663459067934966678734043598015116455490385480171367373706739102837338703979760951483825208585155333487190912214202298126441786135466708917393576009272666669293590505649313264441117763466623772505061609092116264711607472209854710983358146002698633224714532581030137155293304481188369491896541992637261492315260475316613353606653861291449011004997150039081428987089595822628469002810532378949249723474596429842029521829929983562162196834672631178420788329138529802466980263090764566817788766669492740158811584325681254541509852786025148201177722951088553721626859743534720156101487364662741527055112834878009786048670024517684548077398324207411805586575788005198437103253355918138071222394909976615096895006343450595107875321946241285387515902680636659919736710031234328630530230882419024933486110696923556555319775323755196157737925633234554435222240882209627691563395337275711314682043240532848353187701984979744698675821049699052624925172398924982128366468309601006070672858614475834191374209902756973160317337182551008518715749945029080439139420740862224048607562332896820892285916348974731854477133350480703092788984645112765956341981650072835964578866168411638769796210943325122321753395137560813000187124689270102901597449656456395906120634767223220935623702816434087767181264623578983260352511811379157338588878631311526285912411330780371802547843130648199445671237890021717312070041458588881139585434530387915368207981089156504117878554233950545382044960535547523057345130485879916845553564736834955754989318100151615296494725584593010851830198617177857454344911987002526028906572581209918833349391448449189813478514394627607290510993711334737539326577877490251102256926306251837825406648193405385022343306438684098188608408419702561552800474243871452512352001995445498956653178887847819035371797508464805811359610914430275836136380933829333859331724602439815831187320393350196804198487310822415281725867590614476699644385141155124522543921522061649920457609582955875193030802116129946620448493915050343952399344912275645684969883867292114178114961289043965063585589123050450955692910425346338067089174735704296105274506502915518861887205569384258176490439323333977971313784206280766644127230040752966552113699541603963698564156052776673680889525887008397209614349527970992394436526291683706326152029281440739829511289920813126109623963265361170945537101335689908025833855752677534352996684799856573379694324600615269491493439038745261030098447191748061259717961004655643813215286810838391407556825523080665702443760875441878265431294452293849095549998760932643379658810683182969033773475748104035299424375434639783891303959694897989726436116714579481593005394828815706625803281205542179616224921593770857214860135946254119473933155856552720690211197427667202325672956911235986279795430490719021005672268903152568390716825771283382485176364613977857371838253905971704531766884794324971828898051954167875176609526365036838422923660664316968618821143992430182441269340493921074919368000901915957858672635072404300373520650218786029956232197162722637103392944038258052203019339816752275054307338669231046587121266600822468148207513452344555628921354743825398335939266637521064719254359585790434392217958293258114522291804055411940399259606124703835973802342171341117799022107326724531129102965917994376391837008044073363351497418313420599130128272065868067537212476089070276146583681284700899277550233059712621174504238040234204233294652318103656535384562943612001379279732135392558736075918735065581950086539308722875293526730741665506124251220086590848291731101336296986921068189838466632221911147014603906363985691761794958084509625434805122336560021379565084423796683787638766663287374509512143369955350907372892324831163280725490107318886430902067163177545605140075785414507396911233512957959637643846428308323096524712040605016777267029711108936026687654426766566458428509600330024059695975346595047152155777226614405336274542487575050035013000247449815029324281791016281347963532413581442777294483042775964154562095461068078264342304602650452501143807118333838640620687423272920273713004111833139412197440044520108889366110680366050929281994747797210851887137355323039622174390918216745421724610884097406912186522909230873600295495487004850631849319952946320957974535655244143511933057510372223367934691865895427119017027160698119228623484880093819390683269061922576413392500118587635490086751377451225809748595396891846581254649644524270246257863149709536930929453997768633147029918118415938807392366174071352843405277631925091596392621296796497173237148661326329369979084658542255337505953764411274770852138608688047049693204868853230270397309076444312116901791964807935411930012596819366977998994139174915029803156833539993994367675040893160058876134044801607022735914697992360250974863774973018008531530605809835300442039010595972725308886183328203466419678655133491452811326321297580103363549076931215726156119964277906009454549559693831181339912498947008290075591716690630813157387441038763849358318421397097447459601564304707169015065484766816159423028565191131849709591497874168213701416363744552133861469946341196740994078781718778160829058922649935902642313449505442549452184560427322335664643791534865170850012728509084819195920645631848191998301391120342109002566535978394270700863403762994964098940326187290647792278922401046972968359736918090578246878422569154073287295420004463109893183213077575578916362889327533228958204996734525713169972103552473570060350920341838050885576490172758603458533361725931406204049025272953419135501099085563043552443919705201861518177705540082828470919806675972643992876340478006513525747064480138786221374558241860174940383241043698534230011067541097960695847020363522067823045181411701257385878342340634032843032435244477845744370753407175813137073007065555650570116908418638116904722649932161052959690161051717525449063356554737568804223494521512609057322285770843084116701055083689118050724704770271866056791856850225886747803431254908714642709664696825409293374027996624942082836917757796888915844779969928870684735540144869684408577630850260397059552364593764746333283896644674511968666827855515334872316545983487288529615998240057309391754140897015719831592857322098189641033860191858599187389663513874371193522736564046054090220591703917465377752589959277114273066367049466064103150591591805818732438761498741463714310981805255805342026833056556375740683206165783668710477159331001882014578194580098108207533557483296344461903254985328338697698909379878342338947971951906017280459734682444682471459440052027926569961652927047077720206537233063915719273609505907472518121775540934761346896971896549358137762870476865060770997091459678535848875135603528649520877997361447423166921476689709254442328739403375752248035777147836943821339444963475307696885660932590765093243740129003155954522367216883963817452200215783220081677070724167967342290252060430264529711397297775599905547428195486757822874154032928377486384471541362268742189540118671697154254834306103237933452417441720344691188727389265587314506507741324312047052200096219157408053000959793451927136424388794001337620617310368741006599336871957091187886918183434447571349405426893921025803073720333146793277240749906448985040030965866756887727330087655481487174509468464112214286927922944747729983084366299460460391573083801504208774390615553537240996443276629986220656978492311977516087110873772636289807847518642453907694802336636284771510796175773892361554047550279578037530422496352173911079794460030788612642573733300095101920196159944117768913785412832673418026741129622711481828857692217733329378996786913528418540735400679276137328471307114093193390883633043459697120576573229244481771528647258636759921698675807224506579755089171542974356730823775827501863962301273185233532289823126758882145156769332812538159102509909622124089148305055775497517843054333011795738567073112831317443992178013461447515093951475858120362561887076641207810621998102400177850517646500489350589937899881999229051969169836026055210509664592122924274393631402336999039494410926011037528113928187924424417760509144987307192831158080394874410731786587693221919016135924141835703830303958052284153498868015883881510288391685373527366955394558047119058861303103228013794254341155476552136852638583337943670117993129287458020145966698541490947025193900855998293540776252568229551130788324923076677523778407127862862990456926156026979970673013230440224367292100933642153757070923969485277540853852653037011735309354078652571692138206995875063412718975025434846641208167563784888323412283943181745210476382532260433559573504286528704217628279834094367192579852564975051655004560856710519396496358582111442194455158965051702763574910934091919175787282497014464736763534926018888090147551500989100732008475788139859690224781770869829189760006933517403297850540421790989212410626922414787724204784745322945527460715455683869486466008632280133929646001376300851651080082988965512797004165963424463034369315868589586749796351213761720071791964774001099619022335293162056541855081046780811431543318505040180641337003330172833481474122051136445455490269973493946383364101871203317732350550833662372945556885475539484404148090503142048848584158884663822839487088165431806055309712804111359301589387280038705089011784635228254286081594344590864535787294400033814678393580345454594721768226951508929455114866687564873354404075039575561389784253992994061041396459879742244565068921925880666063812208145389150770497167231297346685894083414315778544890792617646380834603415344908049383691207605876369143112573306251884124838534123454956717280872425916796967443741052701147841432433092736839278286832967913638739298852941424988930959173283634626304487429610003503748793108457822698923475912365438908938400306863727773509030100043022019119959890892362828800723895210231031599442584644590885176005103309587170785502351979422536217844678587841702313982132542516228536825020556785093641815501715750800873347729515408698520873320614861348038935933214902216282400945601974055567851658129012366262685886659468807105297904780460809262346372487182980962932019190411374304565576035831197630099202601945172812228767661312051739157720362898678604037582155332213124846950794374851120773289533371550750361618320995907494452302599314611779884582594552372671480007785864286365260005520173387763737621646281077851747312455924567849716003592096750891882934712236274632315174891018805658674913734764613199008868550453689937408967466740244422313638065272011642759287646813269960887181300562456134546324081300309477300094209741171773022935224140044012658835817380152645942644634619480428885025294978352796705619342278875967167611860921584777163584146832155529146556837826081846551213042840368191096256462558446549547003750865632527607926044763560908709199594106681821026601708011128799005899256116005273269525633829648339093894787093940533118381241179570427684743573824737481038359232745684317674712496548556655637840663894897138910593931757705633546227777234422676805017624816313543892756634088766144016195595460586193657411627701235479305743446161265292530214528122710896980922802321551771888478343013481493432169057919528050152609546767359556790895366987764786049195468113218017590171179342857430754771949309094745230447926995968725371918560174191889147679934923864463571186997078268749611528555913114749297414654239569883581918108286246616049138959097200564391752723813756048312450577684487361208871542650805426963522291723978651305216289131451197879235080247782840037748490620071233096293637028064269000989079405504721885500793759849652465779824792655646875558240000466188707683459028394215785848222292542835850586239441328525053881839429724448329247425835893787096307051357079214164503107778111860618056709676132268387962726622681572763226255274891551346263510077565546503457150573005400441166895302715419192361050739213600520030987863417008411446482135001385154852766254434672761272909410150119522427922864729713588927068168075732998451715610879998913158002016682475679979459890164641701160943421821068264784681548390955646803938165796947048504675863510930812780860239168742963204297722569619838474298008697931067656599184409543550220824560696011082460545474094087751940288435228192353501275518345263742546571026236093584959551220638148521600834806938595061891502547435561451768878041231051410591218074822728349322799700835168091276395258450484808113528028058110139526363653598695894437443155799196240973428782044425618668413091841771654692563390712350685076570798610119443965735753193040400756472056400987712900930237444822484381046733128171334714861275584532272771036059568544733576759534068031091245852996162494387469492403012820585475324744370366983641176392989980817215061383446165668403771752069557906171573700232753197535233885827370757779078993732797892391392382423923622578084764043096809934335875681793136403037294452042294444023637767298527045271516612816411848842482975167536031057851177981207471612649214194663812578170368988444835693366503787470734727762143223991383300113031311965000987961127167615174822808258045770653753243458925297723626571524802542586883946955466260293286548875804410311247585181285963048725440052924307496389185859067441787101948639293489529818599440205022613363305134687934950276648361991480013912338430945208144846483242499226961243500959482589745308952146713421959593810040329480379640111753492389538551869492814131453216742638776866945421149785205066273972973622498893129865991125650169919173220435115385237347889566756618068898630025046877497444256216673191644694597300444030451752998635709850071084231851902093930072913414935147222523869974263559665367238768046129032562380120113389876302101713582560536442870664552550905785485104735678872015331346290302918449525311839659737803096404552574087968322004097507767120940014835654229311841957776145431649346892986255123248242794175716873150749447970999121392439692773820683747240453638933308736951356250855986539137586060530851427233728741222755430449148504342409592154956555809125819766385510527545019216292513028646172908021362933229178024251435073609142742690146739636997258545302158937053746375017745651565338377911097725898729607119917795963210227531570434822606071338292858835314598190542013338535287364933457094525440821193975344568311163624942409033251324963531654454733339442805774082535966379818635447511961719789149808842084208827358036894586819020410671618727456330374065790460774021920340316479453181147176320475342895012073701493094953670071554969833492891404978574466740842091347668957664218671552176123719973395750714453760962684478104622461770300817310507421813917788945924487066636162991664045986279194294567687243041464801147132739333246452933109282404569881102200064603803917993318094266738473932317908526986758887254930396193036380513208348189498425426998274170478687099237259508829539349364891860321548959688003913755962996516268152731440440741172432194267100314353358855590249934834512687291198650058654631553199728405446651205354874378897630696218535377824039289671386146803225472513129568093912174164846394396544880909514576090854559117114063229787979704541768361357136022927758778122363514201079139089540845482811859685803594300069488785551883326856741114969865286612836085869160271901855979042402987122410635074384894998653808333995288083787759488254373838775211076314120249459686080317432912848491386086229902638297985170505154141061875125943731679282269198956908113031874062968552582084260696925003428758500758191137974631846926691913905005275617582405316502662415848921362307738099733638798131499971655048235682137843594967065444853487544943327290331996515042174814719988434977354946859440530805917260404077232535318815634762557166227346702022470855337190551199241751339447296078266767486066116135454475831760682641847088921076565639858537893541752978638006041258667278098417083607339501247869565500665938140742100477372029819049100823349985062482796732123067879901004593269166376638123776762464869424380262222965940045884832102402000528615145117789445759167734194441105747680104925193045033006713325223301893071441365905485908647266411416304014175790838031229496432625799363390000846883297079553240589965056112162555268263662539812407353453350066204988082255897448099431729728343401304300287395967287756426166628157813900761852418280673587084010931131494480654060395208427844393800120522408688933540702583847353990695770133004686409308084891389534866295283195015785336707373593184222348042553255987144650315326063917029693692479106623500687584380196977376836396146340008548115858020405581540702078366526540883102413576224314025153065854130034504664523343328583252913283967118880635752190470029031314555071641949621482897036474902903025288385406844780812118597129451145771641662662226289129677374043196224874122753070699771791694798769111887360142928606103012213796584816615921076315592806756739708704059009627759935653314818218651401460045910995154206600772522457926395660680602584077445161064151539530293581266899016511256960061083665457096283242331947629820140232712417296217723295633943398455237153682905452101046755556925297680476490410056840249626213498413323756951143342487246050696058714362237816633248210358703983546939327056828808603281329022351695051382508857639300060492127862465177088460934371883626511825467769484179822081144876942972004884819545250772562139209068010961502958525659505284035232246271317303961948883163031459531446995144264008058922315825906579812237454303138958723607326798383954903143318918077409496502734350261925954115913155330649540823304954222295319876569894440248969086327763080445989398674945312426892290432844150072527924106822667729267205225601078173929986094434596074584034687472453784189922179273697845606373956501056045927840277257225363244673344781473662228313724893197324026200732464923424070485057982822895245515850764686334272588316610998920796067649630938137873634540059961954258726578597037340757039609600009085985927226232355080128132747745821123761981320862625031255995440686186604711476419757058391115718069458405259757014321447954127167311409994137420344015575099635238682605361413429978598840367757079935807806515971680238705056391085869977121614111101510511003967034618345823982637342516606830575502646711530114887117942758695876716954704472847663607258356680034611689342357463550284574131065499293704146329887540383728504972458809097910298932114405980113618304720595642245304225450368774246919657244788954946971861553003276840440966822553113734677912939417043798998767917103624552805300319578890255794477644375100675566138640181651424793849636893191978343614940362393115652812615266924143399017443899188352869356691128388708859668577820225134556856430418033017881461703653186363006779263701678607519229572321120264180253902352837278196627264175598955540813488225964797525888921334230659275127177961254663793988402783967764812552039119113494240145449514670607834221806153609954858264160440396606539543001908955126601491771095117112073122136736742592492078583441130441312976626919189290851425818347494065828940638327725525016110916244255071370875627742301889567650416835751650633771012404983737258925221834327845858683610561724166372880557333539748720415605626573823966519660367793130081336136703986154765193446644401090555352669528192124382170767917454395305236571369817227949315664072156096333998463171676624114312597793786246923689602923748100952277197420495556765682305425302575465203086364188294042637003103135261835791299816527044567988803462199434040998523995398209292369923412816921458579194352508923900805903281185965520130259921458608648901212945567784919053402638459226272865896994758633356569291622319216726911060301025297973762838520213990672418711014666772835892625432554375136841803319348360220424334329870534431270823725022606751828485176093993374657536561527085454080763098794106914675683265015886422265118535007520884326090164801170775524327997559447842505814241916418499261999427088152543805990683794188558933131418391383940005886061933942757640525841576627278250399570333006693351326314309722755259565369389964773424594478853025388507050184571393328151455321239359606338228187924594807001440889675428857667513194670632132285994577180034425464762195285212241424326376863826795627636212257224345515663872381403514794062794168576363472503016830477564010940313853476650703251128961062131984382033874512443992558072247326441076107533919821265570869802910506161560967154278016439650512813862964857692855164199910320563221995645328415346987744596668855711398259980703996216557404503911721064090642930833210466133251685481316648844646992742000685902907486299029787039655574131755555740974149708729759917908453320475013399589853882439959842138800252011143994060850345645878059333620468920717203503202567421974837321534848602698404098725311107566475848968696570184060496615971067984044898964003278361902857535835921808716280413357469120833365676244140321603845540475305810491679021975108918037730862671550637343827501430987178413876427465778228799210547799052531578656137039249915141577445524411318452416410335287191611901351622384490985999769349797346336870555107617717579256733685270710703620584520077882565419569546965177794881717080450817837775411278208964496995514922017144778717106074733806748259866601453622747254128231944210101345165779320473019347987354447832222357101382349662592670168143070997039894980067262599003388244639302706693606156541113364088847716956155335893074942807913686317797575041923388859833476208685514429166112048200091885921673520367990781701699889979798808324578039268114212934786347386803178362865041726060196429278074661963648737334190812457651495163832041329454914833338784459428331870554200480898407205441806592516515888413301993442111630900286757503637412107417387036355665470771123619736537253924665797767493405397360823268877672647287150291719908285364199031989783835502834665591588816484659487782091563718857166552308055741634643287783915526960174999333725703988534402479479592237210917786073007985530769987406092194331796191750315433313863831236440921999038024591981820135745019803256499028217695164630251738856835632082783791771323241320959003067691904629515031680500979015127726021349752419585653038610178589499567610474256136158914693946360397684602270515148975679660258357578171467471862448084828507302173526854480190099370334761650807764743226129208935143505305235725206091324219028271043542710462816589333324563940553712659373291140797637275160830444655514296682545766716789815655537142325013306166917106874411498218599454294874432054837494882806396222230035058362002284599629942446963984153284752748473419847946069745018360837254931154945407710323904928853598881820397764674099296322931634097561060861716688463617331526119931555560380882945699413824962337582965011888963327294320335568284863427935079749902440013791435804910280325726132766641453331600872237620447622476052403495855257108765968067306918061708446375084998310939953563020618259990393149751969092570864308430252760809792065187739583914954267346870135253648674890240423045678483950487446901086079623449735212100286397472100099364750211674737145135851471918802193084994239021605838132221800752640385637663265120068548498704307490970095509865331061651145681270137543375970168504916558691227050641897563265687804388686578540351322949927746049989203175713730802625310813539268396023705124107345678711157973424676912692289816158991502825090864928735841022176574679136172971071091201282334859020748990273046869535992129060352615753485903873414981557813237531596216709023214158126808987480924898803449997898443408643352917849734951048747086628441552423135471356904517195055496399759724760878541410199141080147777105442286333842024035278704823490650879194576438962994656413424519784084294790956910663350902800166105253693029938039364163228430381238604675327099213339601439263460156101490258781175342758310394253386763968926015011649887525068448087288105868119923239460447499008338598053241273663318684333989854422493994365311102215804127058574580753507186912770351341225770691525872492341791742248081961591037598829962771628279993013834135963718902599347598643399058755975378741232445468953043963908542301886213470501129168763581104916782321403436153340738899081409806538235357794957568708272912648256108504288144692020342034598514748866746427552218740616630618086421151843184835790896432259804114894905717621587615033002386158131527823733883423224365574395380798546877066166209911233391272259812315420157604729529522251321439794710144068372446038367854568764597041607417848600257426213038576307605680613127639490337788243425361566145325045969112464721231653265345559190462400711523378607200554078704003208749165101764536747200153837519056087673440509195203483754581953923233941193840631592656056864232782889576809027803102793096967411624606948425007691347644122880202893071842919614280082563580998809260492739092387681060904549348702303409768995227647824128698434554813964914645424063891883103672135498687730498998757440948347384386240802541557636256094345546741409712797345232597756819248932694608722497187989046359710079218303273589207337384056409714220286765336650331468106268669772922421144739608525690784304395769832696375311503460755216226877620014525446232822102512900106189620264565079184735753888870766990525050579131498361967712324079781130221697456091869798962393805684291603757048810444010392288041940680445045146745649870445463198756679528248591524739641369230125784338545595499759310822709842789466449154708484350896089731514501324227383815321664474947067331990942061786801703722275600800210777745881712982576154620399527135431364694285899964786145437968702386118586145508830583275120023065433785300495251780137670614866494168998500615395984084521066878210893120859102055909019622737744030680550595787619159915423424996560024007901497203022954502068507280258193687093474002653227138888869567344971401375371768246108027154968967398405848163449949001133046641646203152714484646405274058315971753081443004921323185383822518449315402602615271764018040286802143552434933892444291144996520226765093673394412421611876384488079990250144828523512562312625305945392584310053399112442711979199892086439867927703295668177716490672478584427076081930763712932938264211043552012698392385419522702252039964200301695276390377615138051538442091620180325991708090022936149386351917446328115733703406744885831495443317236466491061640298574686121467281953252638912496174876422447541944251187635607170297202103853342124485338598639000389594696449891662826462063882760623520324510597763101485225262466498730443059929998682282661921102676478396019884884141053032853240370115686716018527421781617019710727215094032604273723199173080852601695753745942377663388458904269046634130226465060366768198950634686528654411627966311876084407095077427563698169641325545576133527230016658107003091177080773021001889020068945739355135090317955458342027126084835071525229564162216857178229718254666247955938481229355576095204480061766068274222591830181372741804047393577386054290726760800711692061594793468291769949906883376253768710073919219095748093820593984375427524220598799727811762370820388863025280890553975190580785566923503370872161188437019381321375919960492858085865314272588551112402240623919028337866628180335434031941191667887623867711893462327218022618501481813776753940630790320009959911199226991702631248909788426336240471144594123313161434984883486128733513622162187323357410415585941493246358746400881045160103557007276763195331222714675942083176505686260982788362901857846873117218656566002683077422489782943205096397437502316917569003508631494034804618741001637583951768291270812450719375208588087205082421415642611805684957345374284524127327931121857325868705855091127123057987108212789175840798017730893439774365562319713518574798521451681071852234139933999713054774429130617846173982770300260280095524281580215882376869034270534985863826577888062663730009422699115481945078576773083520251678554150007369538286123980965756589545412055137975187261169856073738006632164640490382002179074473144673294240913571872071084562445879219876211140583047519790943392117267270474221791554857376938089712232367152634444825787711359693961249425410947929677624801763816171013709839114185093215526836338267370399257204469251822805465827887508405212425979851285387764349513228471799664243120571703736933907548006711182842467531352456835303069573751501428763697363719110838878115715558719181242980279710900076817709684040400622550582366363413046383069993300119596722309496114522223935302362225064459228936363138987767674455152736343707798011617955319938039078527350890984279049193895169070262027035022835378153777689181162587620575290711717859192914871024080297042709697730720735826929325187686206217767823933711835846939855720564212839272890601540223047238664251541612627223940211712739641384720575974917011581761680701296638701241182853980870213615205941582086295960248315886998653983112614949762749046673266051931180568306735992291202993776655574784182524789244485926704313581314243081822537211644213550719110453841866601652233640395781071794696255161818416774254925402543815733438404380500967679582664642753795270810128277393509968153602993542023970880046235326605601871970570118662576590555742385004697367400961448082571120170425452441528431685917485912696444938735088581473456358541223576119690497495450209893389166975929739310196786725930585072160185770165763927876067808971055017868024082574605515671666323649319075609868433894529217611670856603266131921588100243923551655610534790097489046488347146428254796576017087107877013318335900019400478852072933789603236877115270949741210634710628579138853579399920967320989810893088210533254074221963258371314132827201800753073984725591941723638224740208131989196538026027650795771094792749218668353234486876804834192505188156042913733111856912975546992176162963482441352292133132871254504477655067477073190543267096212494238548611125139909098630485445420488579076919826076629265113498334988843320005379743424816070861797622664174286853901145825512645147143420111848078886192417426854576048783013490499291786149843582789292673622511819693623819989388729721921946027245284251122555533610931563514252529330720025316350714722043389785920069328185427827077976655407333233476171285587763501467136708022861440859413117315137327492385828195419196367697222602738030943671806700521917373146803710447153899129358845298579710336175562973893489694071058145532639022378164487769619110834162496835916840807770143363348559951037384652065828448640802442879860622841820079953912507791813672925006836723107514431495956211447382801154596210510971260205124715553438131689523115698751124623983538993522420688689062238074438707982363751810165136581388001553378826499216163153955095213949634799983574039316251955767464155414076419764061901686272392902945836681596465119220489482257470332719565070244134763414427847055070044946656372635174647105793304116379513821614212498672018051830826780323110884775641695336462355192953178860414776431091843338655379924882514691693759270804758903115544173004822937075796392014143101544415914764323659434334502847705297228675573275888200461747180723768623738500130362997225152149007843097440174167259718279716571598318752787661910298939418164628099049122341639364468597329489486350273906380402299700699129360714767552320184525543815787286108416762019578437570006217334848651218261220788242392493704914781935884739044238506130642822113978158835114667138195199331497120834184082116320103114691558107503164211934789234869308600151443264286720523360126037300809410282407087366113722129224420682504084322554667424444832419246957700721301635594608353095837339151769863678582608433152715440595933791395124340382819220225526601457186358339371967749293516547810173767217902258456310708247363076363633535747614541634990837324863233556868942903339307504487970992739404739212320112763741614088570091659002399079491144971074354369404834424198202694569957167203628841626424961540864702765772309600200383609160029038378698073597325362596563813018516368655307465137204724511823448378621850440255323391889342500559511552628595955031557419083080263446923854089435769672294520154705783214670881513083097180204227580835335628893379109559127436278910972883367856573488775573459489199632415690317722763412583657797796247024602912792775116963503149515851591528130220891494724197048178558890235796680319395017316887987347595408988772585585352307136046360877666570858182760775168396367297195874901064720067285891124629410734550841523297834210825663935048872120919753760987608312300931492857234441215442718279788756519426804202278965275341471038856017582619816935420456666388076428838196084374749352769667304083152510235419892478779454512933924893744791406558768519726111381818633039082070278886097191732398891956968585304581213072266001974139841492067683513822804171608715246657464620772060369233014404714044378023488553293031828825502612881034445337256551154473454294533647031711071783243911193864580971396646426404324406146348555043576029730140130144833763518802881684743990273334712486641855922875680833551532299389983782990841746664391918350444736871185022195286090591438594499988850629638213733409249062537201956953352825499731576707060802910588139430968916023193236011508100553137254347867627401858711147812393221827620600714203352891126950797030379116997919388456817700022001944708383088122504928817956813497835964230512459969167940013015412931764500419502795600938234525897648761853043412394395221069684990825981156039572251086786621514407872732378432731771186869858015655741031544670214776801707718744833993173184939020411194479083794338144747088616495396520483666049385977758543225616293511878556000131705375789786133976017130862778587027510105833588406850827652688778323867763735399233800557891572429767342009499380397979091413969820455716736505735363681879202632389803559887452030618590671712088137904058954284891291281617988762434310999383753284689522761586826940183529534438553518567061402048948210920926602116390132624407759468441052111460690131500970453870240033461999749667460071393757022838471947987960853661466665850946430686363799714345846111088116497062353806306988412906272648131428159062698813005372734702549127992488380212015188086220137564818280267371632342510746283873738615281271055056846694661715119461320362942086937330226234944350675794643516113626003171401871607254369328453274357103297122775679263890917249486292132316572002383834699783451789396363471784973005750138521501780822986983047171875766568862995123552354413326954558594964067203117322605528765628024103040395572908359231785442391888041918507586633224514424529790072481185181222395528693171996134301439435861944235689745571040230755603383170142943268623070796349346321608017155540253164655264613857762255513476159641495663771819716436107432137783280784010074905582011759547664259466653055223014840274826817163340666927224916198944317336170769245926156045178404379660719064584560830868706488949502692521114953293775360456074136542538614286422790735205292516250992121426904337595599349958014141937663623273493216360550489499424200313749964284034228666612325269874413117199140337761320918910925984866713651587228684683358566985643143974829437828590417513172138896941400985732405708004803928091529744602201368887612756048293069086158423659774414465413320563424257301443300456257503550300929707265930622468528596911783655357095544414244977723133166523857185288997788780311492033084085953867130226414547628981979961714021280453944490830948581653198538597864918203606425320541052074993845070811293574049727744763777380190071765618696819436010493728021175943095292014776271628600613335707255681209609394350278427833324076682138181923543497137227744131026193791188568266237079576881756616135210653848192632060580489693738377761465308621701807293512592148428798438398067497131686867049487979120797594482766481854679659565234747732885945920229959277419542865508578419710674487289292016169562234326327992859509635805681436479250224373867384981365536179242533530355138884920855319426524663013356738366366472473048810176190105680697892403000073132315290722960167043375430838507257609907905884355331304579942742398870787218629298131945616859276418421810426044877322179578528782482053910162571289190995222000222552722051906451793389580476032660224543855435944532618437372814006236810296474242009883098400714544266500419089206001625648153018285202834868078883018293841069711702266014552240181897776996108424603795772695902186387462623250143414127604039168281225530299741592158439235830338902402995289369146423211707152539510713705942647556246472553581037059052989110736030103973769781840477917588122816379059254728199250435967477111811169305924500652787005522432209916264326080754751846993873204081118923735834410595815896266671336382436710851619988951128599149517837942874321763110057415595256549777509321900155535547827461896777905237193298634705372838349574706963227542812876435748721564207033317481952235578117972185935647637283441501452724591272900625903023243494665860028767188566134360970345985527305710581310503512162507796971048883700991042441117825585915740367607017870248560012175376696776665883019751334474970417628060298434872199681284264590830578313696565320374016980716385195141289295296945293050587754399205635803921254056022962289114338095559965024054483027027113645159826258335223393160027195778221524353501747293812700281353513642396465958726901186172986143815156106689174902972753473213837522484791341570602880291534510327312977149191052536803417382135489600952619046208526042483379834718264486312002568905873419043662386960836243473955903971855281141221053287904207203215741372825396316560757778094728943428695520356909219654248971411764663176025224902665096058731849382271623225597600511795732934955962617353307093734894931389386357621940613727702659450989545811260705537265915221517524760648530938668259647855271179942922897782487373984358987659202085075654106173006661530367961512253665833450245089208619625616354356195725611428665889040269561833922836180575985633029407430018203922284132659133353124029074737109985814312055540345700083746117943409338560702661100542970759153146821788487089474588281370949322797599309985138501187795028232692176979780921001726282483619840277633260908057852729535271225677048858868683616127564065230958723891738752579659960755214236626896776564264060439574883015609014582808166252391771975535970961961202947667728344616365504872184582910045602744465201083447912271754328868848683555973795047940757683270071055876173143479494725161110272057305173987615855499706933109013996491738253895502778632759323951191414054214599189994801522125858224821838368374143899185409551631051184970425165423107670196326082576865504398662586093578970196669108038306855650238860067228533100209688940856544282064864215873765079814558643890454206476402521480951421367429406237147080968097928855069874694500245482687366574547924024011609134542658223453798037628039813698018673662110472651494315741014767188394652297167147254848167091609904853255740571186933194046062867815312530544219998279023581498361132710962654795432295740561193046736797581109763114771729051681894917313397277878944123742701006421165668294918819518458694771008220786616213740728517979605603646826051762864573862771764554366320054675636070983169112846214921302102711092406794249411428680936363507695010017315498862382485869735508226066125286807769410179977369887853866764954858545361407349938101928228843844913559993585758682785558946452590739052369783489789112428849751716121234704459894795874255137432904779722269521247434550705054611732256881561638627396181730594105680842409104983910574180171573024172984911723708614524361357045843799126085109521480899483135825201638413283365731775796260611490352961196871381583763944184203276170024067898990483313560767905076529367172053792579598286607610536221544145374701689097221818067210164312927057448918607368831451908506625275396068752804380974516530815954929261485349577809956927018557892266069287243638701686641908478396547686649981072882366664768975705692485086006133273786741589417686613517347761621796273577014053982707616283846402402889778471938116073410802673955074163140926400237473636493691395490418530144665321747264918319540198839553281564540864732527603694358987302952129606962742206214591858852831198974019720426536992683893465843258238422226324693979528457475045068299860863800147314000772770381630127960862601084769143676057510484661464570163352229825328245718781165241353384323296724725271475386848193814308930839587128997817543605901800537848729409345710752715855167533492062451400751128859094197209782408213106396475306369305087909148282532638012648065751439096080384695018145940960837755947456131018209362325448846763854430649426454605223333773910256146770967087751705089073580293467374857182145712297034164594567923789568177142100772416588620804670614491294073523484789664053408398468046620167139919995898884011223764067943164823247834852253891282688118142828097627057434825152900238582678433319580032454677857449795365258555599965207465499696121670186383996353350480382793761581994390226451167473465721269753306534441948694905647776887589960420893654324556426052485700580588546192762583884060802952653409613893462919007134549219754712894760379929394578946278604671802277892465701067947976643362374179912719926438375652879528307172203357339004817018279189249828612430044624940298667747952815789521240108236731953438916271261845824841626931090779388231253498621514518064733236598523622295762919030572893100135318458001409125882767764528181277449709078120210489496046706644347207550793563269883227554437317007350038413201293080423132986582050933387018335882954103380209843111135840564660901602048680879322192825049780796728905071349265835038110420019534669037112228870539295763225362803102220141499147168566388553447922419566513954621861139134669937936797705375336756833686587810264548810874035416657628749807313911422852326004118341287515782975405730139411386621349557846917033271665995878939776686534053709065267695645689237876582214219290693253342160116474250759473236712808208689393247536023190031874866957141506692260781239652515930880978295138340120547405320174865631178732495968663639553871634633754680431527333373376009000954671951389307617589485270274367424244339133715861611291907447116438293844933799676967443823868685689759119717130469465158241711511124579881124088875932532903721703745899071990937488081977497148092095728927775672314428439130622213233756221921396195935079021534928698289631858817449566363013301234473815566496012479351714014882296344577946500727269144221805135626131681724349413840137807971074634198438694992435511331673986442546599739925023106871171099452481992938313548457513919420243302413986898189347708084140317492867532046505655776432154271072622209758382273707616506507479383691121870458317035778220599231752721279816084068935052808794155451057141543272986086725682604094777619342570681591077375046999389763757849009954380867686904919949164081585158396723481329970444576318901010802844544197232757072763723628756973484808583972838535046972147655093717161705036647383396190071528652610813643829090050916499242705667115559010606946263895323595628844960813854164942652608715665518949267951337851775330580629539595531090776701028195058331368288449492976863587787013703977853809993457067208710549941574613326138136538300760856522927723679631853363314355269359670562859840505509456794651848287733730867101752851455644464684647981162632684714193203296622132432133082083503365783645126046577425477323257996190115428369647832212328441348119666246308287811762134080938906029287337607291426095210037818078849847903002313072004708412197079759924362352214512207450461557914208614446081068636020354219495103015806998881894935440344585548084581073025004296794363858092928624938588488034270558457996036457673822720768596437923379059546174798219297074124965968451880149156537531518364313193376297796293248011481183996572061015109392624226400244477167124337422825138251479029741615077484308684352202093495109444159815380339036395359480765088007508533843743054693964590559927981627687638933820971940472312268962551726352317231329196819698841918067602866703187878833210739643072850452689231235721562971840390138281571964367737425482941043268263782417038193350218120937765346896402675271558485055878287738104645165781916225613196446385621207688713672085909127103391885189493091848347550623997858527985380052440948500467056768947965439822803029759862616041092965917709292435790079920344726002245574141550858659221054034245231669181910312585015747564348008709873032303687090386606600190821256714954029177775250292861141571173604439077942454599538294099245431322358146030302426271096224237401332414590707898834992760946890466341915827122417626012670000471062301865375838893000420137905622894402167397861522536005519895396376778141482795710545388502568961982572266975706859567662385474743936852032966365575427962045782007823198635755314958622285744370206941800112849626821715413059699701882240262375816667000730598522964062464379744693909756468779778611833700260041580903859539040911371756691000448163258026509577028934151880938313817785158547647632588996827879818834580038833857653453290451304065821595059929605059062432909493940346212013075671043502755225320791090020071697046897798193461512942499173960005910395016625893948725044146003988089646233897040954688541483654853644091270455376438245683924373830489791365434162425945265283760458585863857666033846387260962279130396011780763410757176097585723820943527858063759487831583267021694322909775945777160675719334986608424589693339024171995300811807113925333136199956980813015390301578738116385172504033682318114228458445546115198039847950824590766527600827603235185008084856165663896037511146393259418987125325086441059377587315855035186114051961821626911753073793165637881233398868232439119993039767418578935920702369284665628972309815799998154914291076428470086315172380234182705132735010640995236271380851422196440085111807052699451441632475145400544085089519029464673869642110583865646464559817887718234601145589314223729983333428360769133914271138103875241826492586194551413095869977345869263979821401419936553312475947424096935786334321045864554546450435311237015216258508256780806525765659703531293381484240877580145021085196138354266648792431778783854136199157744707067978210626748513732351529431007282187948734132037514672707975040513027191668975892435861636247210451171036278675775358093544764762412862904104940552427314658172352174931495444214644598672323590414339200422711332611452560509910229174987540261801713228845916730658707196366159035291533671173755749249700953388357118976020678429330933405067901638529600082783902976835781491752838800074214725865996828559844206582838624695255872469407845755766727172965617439917194332344296290270664167933103978367997809276142174319032215037674531406857415192060658139910491954952157317917157388495822912147819292259030192989760152256015573972007901877152737185431278740951359671154319412838752875472422210605208026765411771420533807815277707889653143169149991427481360467762238150347343141785486177160708111812129779264799452068675476282767302842530947485197597963885290303440924232734877292030758809215843159977611502694849007832428415408323933490584473985235203934118224681804931142803814468537456687586088531080482456600947382542630015486951808960040625462533954368850790616628705931169178603440750301658518376752907468508366530163360192026701249389821997484429866466753107893672862730309456475046306059311465777437254455469233804978893459069098665988011805842123223516080664422609145675122384276109906710575389214306990430342689936870142976530400886308698124548731688026623256774769970754721938820739519219673536984252496772512796502829513759820296240439067204972212050433536076725603720376172619474942650748902544476377116553060612707539187177056968590554534837840812882871815402811366612683396684167182257154672562252475224104126448244122909327231722578454279400783506780794998278569259558058491845744776962842250716787684117080297840331998482015102178792871460604736466436762613120722584818275745681203269799645561854969581223880270935133944604541387397873630807096476843059760782800274870515964969642938503540289649188074170739373109415157771053716528957774843547642714126022547077708014273721306444975465735853845411135216195909867052913225665140293426460395689087946516438100341051910864255637235946834643389366655496747547235013499905577894311193860343023749330845583800847544320033744833528209207549052590451052341626235121300090070293524095665811020483089824622949836458147647343486895736402247821552802327701152726803974207905712420642226728488041821135901429859807084290111330865782174212948354834793552563544200417527133371621836278486011930386615495711007831456099473847640762323268327865426223352861342852822169973559817945442304243686559936355721519324490075093990966476583901090510525334258862103491381031566002790981972031102315889602704363948010495338120656848843164333950744792046199550726043976061595240713690282285333994590815310997131681150886159395421061853741711618242546671152681686754772903150220272995075048715710698505151481719436619700351633432379082603361485489948530642619283651864970099057331887517408287191832081599029206679547595144861285462986498124435313665523201276390024904767041414776686007104880171413585101785196731318555868792491527778204123250464762336406164065167903068281617812899191604670243524015992710731815636901991044772049287828879760344839695483289987195632420608817587233115080191262142523492280678558717030938514189419487957864905073652073392733389396144656185499422291799290396999504644127558510714653396173769567240525336092603814692528843842308740306898004386361405387224581630556328197434148064879731966285233765469690006237300885138167510482791253134996239479272611427313035264127573213135893449800813788292922546205794318871508672741627525949049069955447116283875125702175467665849287806497454536939997169204112226847255732242567672304689274830933173650717412853538338428674793267684176745677183669501555728340100037331631387626052272767190899149531169495367511571751704359236540738907431239798996304338130971365316933961858799812178761134308558723367055515371606711218401352048133682832640754079184940364176191203555659845654371302689953982202807436008564704703673061251927059415813877525967054970064279798936628405713556869329102989436283486731150661296569044389077712928552425850916521783283947401010759937758258140292145138449042247116573090611734241178165596169811895892373138786457437197325654520589525022200473325587638218347977817237467164285432905278759059626620557227123506136394960966856665177031911374287313979202854897041786948741481683340480511370742956897551812067294482806984906915387907496171182324126904940728984350179367829346685086038026685155331638949035864059677441245230685681201826295831431277313946631594420851103681677960082430885762961701012604195281157865697658582416276484276364714717910658409324012866196509537796976748443727264977375058287202712444832522423126862884899408208598265955158440538309299359992343942900364292982879458427258518724329218413768383629707957815758113558000383758399272421950916068834395479054280452135148106007808789816608472523453481812480928056258808912056295939133755935258005756848379598709287665765482354295657689884627367949771588604901823532507119093546281300795378802272456788068130693966502102612186766736706135559979242663281424477286553036218214916347695732126265019242866998929215181524753453245638519528095512124712713294851284015623432307199339417503573764944795484140886108148283974652829609283082747078096914668955619310656596898554389908732164217413676304614048117188200641743313960789387421078262649235032044563910550111354082830745204629108222043892646887808386975643789770848818891555314252295038509879248313169850967645676531159210894406597192245896156927363727034464018884001311945270355712282074077935183644072955034795902938854726948741438684136615529212374883624033591794379862600507128794838718215538312215124431934825232552744426817590910108545552194785444068180696333480022880493180261769848090793534949137777821178644012885998155381005793562263540535080332102222757272260979209550717393329468109231206234357152105812668904390485318894866600717847800912563233699186035407684994026670671496943336942554294628273621668802809754353041211523804424398169195911686847767409628759098009335845798693926072866018848989521080387374163683112959172202077003323205346850228546461137405323673293250363872408962853145509796547725335692800683272883783181747713836970860635326705146186168759366067375999715825784583042699361201311118103298178431885205253672549890593587979034957976471467000717399917334233253356908359176748684289930568187577347900965164827369137230819686647980563064742914048229016768964357554483213613791167610958053465885198600796882231934773978196696711703464523906920654653711582875712890310803206811889488880036305347580114198280090072342944374069854455751614609103860613441253331646341134797760114647598909145873776258377677565499627326033571397225728909320028342190906007686994298172915384460327571519384542538153679861453218444661418328016333036264201455795843201863281067692547490538502714881317882475782258548023323870235173544890499119605323535779268339963681973374598170635823171846215801099363175910835690193693685414854850999715128324409343664030325020805678529307371796046276567744034386161886041888109027986849772358538192748341306113305701845355341811859597096923489018760376479748796707449382231132653002946767720191295539211955553565829791739730179756479610366975458481369446052444315416539616863689489621530339472280347205940885923512094113373153077465796096546360961934806464675690286182084527917163582596344910482125930826233101434261385492059985024357796781251591740772586810382108010407300962580981844770439210347237097225362832818152063708004269286042105842273959669519418864820809870023817347723405597766827321200317576502669465342224222946360424305469046563123296128602318130396963153326303618888938552448492672613835223270389454459740507891553317467244909908832494054188026185859842337995069392535293618144131520471948056821218589550300775775331682931684993880605582034824072563480122513476283317176887932326749949879987047006839607072872340736381707096029041705140625067756381766184255426832165787774533203192306735141078256776189587137788163853099988334125697026311200251512615343155866461975104418945594600995679606885212097500388977158991228423752084404260953219547241812989979867197710969605353336114921972556427172310223518388924250559525009628611610425225519204795713334933373872332763626257659220648731592674512467280820404025577300725573282352756744313043911965300417022969255539414092526494666206357702668790006337477199869424627234111458976411884899364820730162258241115991911791101979211876301799699666187420081872183468256589501449142400088928999553106177647513224867965014050889357571297947417812586233653202267017021220157728357223217352801829781415386663292814373991645421261186980439037837607614497841377997620681486904624936429554988715444677657356636034305804977149698904088549192316631784524668484724180270262809342631721956688629897097218693922840479326054662851010926709438630440896670797274233749099213496215575547893865615897084110357013341235745499959822706632213891633831258606271919823718958845758127548174951870566977184871752562425593731747110638980866161151956519639385300564173916731828379971296954316836965642278160988803062051031724063943781783349414196549905212832295701947769361222694650357077858809091148298684385743927091981580205767392671617583163218161078184268281014841457046409378144845758763309255896038247205215288505514537460060798186536201556446540777514636354895133331778710497890954413539542353440296929246460934994599601244758092499752771362954978423415565803966881553549699934212520824295098536146796813635551080693832215561529240950795354553961013230234032824551505297534472361783531628572299329525914151636627897504889299787220236589705695935381165410551522662016511676312908360960214947816447330341997424724232099370487823808741474788605146301574882796211669169742782096352438830406826333911410153147265314436480620748867058618640283692529884647592862554030062814861262187197496372447366366948694071265774865588795944833779970601000715453927087779841887827726386250150183213833382154723529037765209240804533010507299552721782156367251272022829821445418704111070949952335839858722253050231949942221872987681850951356651306425022391862883013118749693900622895081052327211676237114920450360681640307737568422627644254481539730417590455794368025386730445391978878192630818687983041496336372896461110985022312559281814080100487344012334318015653301966836732678112555217985121236632533808261038097454791385227841247727321428235350426041333731108832485721840554901461883463946791906940147515243111584049235942424576785542124434849569986921752019458369626029929394671994598203205338266284645625481993297983788040445954507929937434505800317038921642427783450686829240822464134469556597316089063042345331690966240951831921957748813382595741136009614656145606694877010339894220052663890219863131853151155960331667547424772445789960361701816792414337890990521981276306611312046098530899497884552358448697617127513775165961065256158494508274791733418593413908978762461451038909147324556656216576563923218837841897194148679945022688183942356706995270234328855652840866307773860556961513402970276756971903072315502838680293202981396201418469552659224583765484132819536474630708118400525059089102399199766953260034449621197992822310931832388368334245097422847677414115395274251430485022529432638606552177358438454717362120578545092919680870527029264615185440509985154960365439204091502401964247666333250689722794151154370708753666949447268607255505282319299547347200849275120372951453721296755102400293096395676583129411553059108600377178533140111068635872887428668039445052789164008557650064683684115535386267509293841515941324273717395881215842229021216285359598478417145010700152213656258074141938870260802551042356422319205618762456760700671078566819447137905510578921008016403649296895498211889104393583942905518679250057209580848030406812528209002223156823487456245120209767433172734323966670237597419629933933626671165229856441509708646509597933198137515783192990665875173860626712958384471059897858102337553929362962775829309222184116749088342418058339704146405820674237528342971462177910772011392592642588263449998900113275349237867398344898477337660289224684539605812202284595939459717095310786930649418044154055080681326574209721030784560985791025754557301639479117402383462461122659333926639985922298674932841182351744097303297461766842710205624237458860718834991012721745936961407924327129342261737568911848220538913672641430907463478364635449011371586864740765218625841895577036046931409481255734293834515941640631996820720231321223356642576571551689364710359645521149589432705414950692874332386836941489063168150216516008643229096388569098581258597536862621089732584797445471233754083694750698485203000935962060250472581119465684256624027984528069936943282316940353021354481232116337758234809221887420382541196469733388565771117802567718996855777148207408307594742961380870691199754860743100623637557531318615480004676063726454388776309026140749567599176562241712626257728845540465178809143085464005750425900278339149377846638084671853797888173447153482570447373673404679317045895482220615124248690243872101873360964605653688230836090762629428200205127605659892420174992464136485920172660106192936711473471826269420831449010054044322191946184407306489012832204679208776509583172991146077103251383972852529023401063265758615771623300328946112329639213527384998925889021510319747224374515359090299701696399994282299038190117363949568337697956060531901390917391643879512901547311328753344842366263995146490150785288435656539653001146034368298365191207764569266659990268418688577770852643661555790128304009021666232325886307190264329959870094352309539285549055576790294651828257885732471449709808858975461193142043290747839899934364486321958991153605874320015409117712405239757386914018312348622403799841555679466878566631238741870048982677973627542568610661311139775113282645334589380606611200536847051885383910635368925323807640111309940079492012499338717963852533582712335578124456148330420905231460358339198997360704361209933223399978154449359750800397101166660253992967753695494256074688520116354137054326460524776055956930817319752767422692316211131334998953895305231163337932770848189440697586575319053259823153944464993101932272659311427756155478344087848849206143758333344300216275222457268570166056374731497045491722401475687991537082493319265675608754962579709166741852818898952080733128599864321533132174871040496392966771946931874401113995282552721893413315508338773161944666935644824438701709278791146010708568966779588590894844766022851866008533492239736614628687552887442107420174095940440698560832093324975090402379700457570504054548123169357728597900422113639358784582339477868266951848912220355359502154113542027265868144892615317799215053091130816114215713156078998125763384540012488554315040757080334297774289049241901989059501675250502574453835042044938416230871239780445309337647881567755051210840562609544675570468047594034912768692454714319649967744501306571933279467701133181422275111474378806477651110036929051101333403912789982546018997647517661882488970281098066898420647496003208691010746989480303210911943284621981318785534086429754687988068396907540011703733775654443159779727751209893031748199520730285775466186565291159944977192062983364765758795178959658665542735035184718161041386693907187827810314298550013057746005261046918743455733530754156803829630987477225041950931816887215478776895669303139495163052227835145789816856185552838420063650418771318340633612608533109535094749858685510365789187601800809248486180254896344171238996673859261809929974894749105957474150975188679894470374040427502849342820821309394598215543837130448107826153936410439232075843137900104722521626514371038042828893488658515093733995846723572356945215603417679617182692169493341762901608110113267830321736843010061673043686239672174494852263760861285823012668565704859661109878536746511571757547306432187360409184276936874513495390091477588742684639184223534260432249991635331853666552222661919776787763175585701339701083131750807779986757616622164547077121516847454528197128105977239693025149025909424193047536396392983264468556315358589466016801987452759953909298058325855537611760374338681491152194421902818154775202563060203476547336265803691368194030108888949715608211090248953030897733030528348606340841640007168449514825530210306248256931236438247465874873849410042499193014125215230552110494307322679051786324388773302549584256676141427011699619648714761334547578111204058427415153844749475523996318690173643953127830410494119488053645139355525615702291781545292277513430043818989625138892220022341734123888893536577665483306398855981446448560755273845739069801317691159911044862075312144291937288881771762266603044042654437577400150063515758920759612811234358295481993421853329670001593481119786407866341482545169809281686797315427560070087098166798068583073102466659726713345856934951006233404527582211574650151669376196595847834133266554807707636732144637592608346509655328183313515561278863604114293472283804450979603338380625940853396824060141391515700726476858295844587126537351001896628049988738844753516740758056486064636718345380306287582957467183330126161878866461538957985081459284385536525034928622198949945028704148527318852703329083151700664901697835377025395189583542891436517120595552518749174488746730696765715991830889380385577285517168766653763884026779037795896341510057068711199148389927172953779960024947124158837141395554481258694898612345735934737851119803430727875120637815749136601667327930987713212111955597706286376647199977051750582459938244273903399293866469542905066307062964957835805118572293917652351478075542298864220665096069608497858527753183295814361975402234332507863346614005795598197522953083899807724538283148395176937455455964940828263894968886092184815504893034162945953549998729359710577566845515561605555333151287300453915584362134923569528653087453892239482546832473806623050053598244214726131659990705634646940276394210463066972799566735101313251729229222515530574662612053829232482979477538817772041353729994426907670389524143661654296668619486290902171021333519148701566638588415235745768234958158060519196996825271853760951985363974600645879518066405280290673571620228353516949379876838000524077941251118581853201544107091264932866353364289175512941890266720392356086540792801447910582595421427590077335288309294069148626739514951321410496461054155226229186458423417898160193727219134867586611703743655953773372148062356910055794036940253799585189674951964063036681785523289842300215132479144424531732017001860113434997900817883438597993176953940183404228435936140109837409306096568373211415641588494290409580756021161344461115553254534871797660920212020601545336902424652659537225118286111025510363596581797632198125957971465112469999995615003534718272399293243367176698400349408755051655192008466214814966199787329855251366972608459568012559228980419100201654300562217844125084581709343588891122429207324468325440604744822190150404492574983138850710488092659042581366105732414234665023755966577358986139882011091612549444307747046857860532077982745522644777304632573958844047227936987791957054695298326119360068456886668473933111665111382878234710045894520132476606183113883173187638631336607839646869812494205147346233721530943467251023465274946634537404375695637867427506121586447968724128850906494792170918735900215563640793816724953467842955229477127823761841076282607138091223660235343251628772032183221762707335788721072283423901147859637693547406914371762324296259671646009501845382178792375292677326679804519548995255055576400737911629560728070790770172870072559854383421965174802606580418074799398642746557664631253520447913768107443046176188671295630894352409642062212429435582377851828311556905044412545159473530783880579998671313915902857291239970584101751767735183334335197858385564923565340552992889132027688194685075059318915711353083073919278192241854455312154923450309015907974747447688921638963943021008873882070401754793555442159525931422774498893420746801861605956500165737733146381192908970453674215160039464045603692766387068924605930340308502549786395362237089215442202081250992798742630790862821237620285101984298851240977132529221199030844376083801165668874253790152419273544183888661217457572316429390182653450931524867498572110936775310950963365898684974395155059839479598059269121555440486945955992870585181800711438728851803808128712665943585335827639604898718616107982101712367842593378955223081329367706989991616792173704315191946590555424519490718943480006414877362659762687817014003007441913786983776943352894071955519040358283734746995237843376293097878495222806624755444827273657021670952982906835682731656972447264609075300960748540006783006901289569029651959212708415996022022072822532377326501832577204946391366816599081583167558967967803001421240629830522441907230755204294552078238737984959316381920200519272151643112257279757523951667801943204562943440326442069181297806795093414512781760418745737745751449076894668120578821304671683901195223753142806306909664266782801976935940665926464798833514287026279057559617862071026240911024077012864991245608727274524050907876708697822424743725130120891788903550288299339462382243448939193965609961978387405351119156121553343451611548093214565183778376524393684312083894307571299629294150431808624751441370299918140703666891287095180991507588215882802774656130921965945642179384035856589182992581782507583655006701808325208647305840337933362288796886784245384063950091464429787430486664717806735253864086203714308219633074281594234652088147862567756721597187833360219731418917568297963356901787095350583821775601430485656743663589552086563416500385852733538756327552439252567615970071712543088912787183699868207778585879635964789921854526429997433355843892887828744270903357250712762323278031211887749376960360711150091621369321428154849994294297940777462871857210431900208059794864132986912588816624432666935179059414022731720520740485983351233776425707736920100356717058500339116885883226621747163939271161027696380604682466986700741782664107822402122328144596032667041469867987557203727237533853325613900171455230367740581651015649910506203185880062883811200843781022853829691279818274814535369371881842828703802415384352025777844454677944451778441818099271903575071408956889182986453465438915858333568651140542145665205812428034250950804774118499309694691219830924237878737290016070323934152284996311682860450770691029368009471501663118909384111845739919457335131232528767059048484905654351735639895193933548323006645303077332533388524371533754041564083048549215159946271600127779955887770628069665337389366841838687919107715368993417028175063924322323536277468758553504521086272742087128558986731480699842890276600860488911458214362664137240234038983486232893879280695388362252961652277516076945734489422129325494870788830589537743052732662488504905079031322997344003993250984137079224305857650967502896678942226903220066031335784959340355578587832628708886294846559999983010236611443643547594984067596330319608999783606084984283765112646740595493207164048254065675609526216229714560983611703358885694812620551160528718086504954624868234433060526730629106195001556988733465382676195150946918424734405956309691752548008254510361955946609238762300391822023775212357441901302888094282187761227944676460029060476101753185695891070125705479580764924078931484946400955677583291920466837146921113953631678882124236861309529457281752589123406294154436944723799840330003127915343546572315829894246509732816426677537323011941403693793744118704937921971675943633295365083712624956575195650518219807749838507736377215911543040292122601176920245514246980126438351655884675564309476452242809182738442786289304347699018338306718931015233318485826036287698175698265874549835887686072129579043770623700199251413197852253726247216441445380166159396468666446278765412372566784896642037164023203971493411438332342784763538972748652418178755690346123839124838776256092387747399850607491272490212578124304571032758265632068446791262731933408858639405830626787793584761792315448719359120495545610392349138670782518420434752253359817239996263428186804778361990703064422670835053588829374897635676851302638060378598332339329598611968022155326993465749419331388759869774819510190510572143534012610227203556672115834001501529064404769014086997571123379547630162361444250776839196221052179417580369816269440775395098000726429933471255726554940003545546675380852932806394525123279018749751738173832117826788262759370481461232008169559469755385002697678875077889212442636836471577461610060070084384443944124829382620338300949898673661402451925121660583497248126789396643896212714003563936938585521257300927797891635055320365208356603478424936664804852247513057900281042139663977339908570577333705643430868936126171000304476459415728107652306231380680308254755722141818460806628558344766964994324730122716094796391608389254678271706447917707168416125746053366451395843871304561787685637975971302280074080200562804435963092834050507681360048877429161009036049659696468907949065585364000472258296990078920135106906666227253515843903898757140010140937076439983752651580979738705067423765398163014831492282787127867922804553397546563685310203313668738725065604166612090236034668697709769596377250045518187798105518887241959132871464583481729153643911683824684329206311741918783874397957425935342866802030060547713414380215290936903466214486907897764091686746006998411461379422571482777404557751270506074180795972146763481792275998630368445615770877907017473375742741044246426499746070904956186976611027829571466219052502003028868805888262362772312761961104124861587903703025241409855417846051352988460844912339646637685786271470124608781392030448705587125456528010115911051866185094922008646183739540826166813044886469916431574449139532244432549394065918281391711633452634138548260407103303097054894027568239038686447012561442948870950175330603948389137073893090362135362961225778739022185725106283671313288759135381425613931881180159814128260791993827128341024481373530437294870882985739407648744773128138804654448401047678993742389752289349576552638192333199491115369877393633670021268040470717244434700276481409753105799681275321062138586743293225765196260975723210071108652082073680140580147704548344985614283063958061546442630301780497699234199126414233884297966706892062382173201461562301302782925543365877209488443839935632514193441390344317996598343131347341198133776552727682759646059681856415857460576206956673568722758042767109673040610226926111889724905295571853840879279077610258592895076111211283339384050168804963594372483389794367773979454574292327051059245369856667171215622881544331102807071817642649560348386362796937542300303228276362537728810440453820087503730942963860313389884209829023703794090702735311675854105402205347341504686839085958402715596501940954185310329783073679741291152350356695428382129024247882461796546921920277473858849099841026745862813812421468371554490152533279751540862949457321563011522563530090271165949781176813325990460174681021602023107320901991485907962068628271885211903741572168401960991946908482022466543197288125091001009429776493794371121614022497939147421361989678155349799333285411545357924920216216431949723102385138320936806925758680975311867053199345855067974352463721889575271833627786514673664427802406989598684944461523830783552865963863875365774525521664821330032263182343932365085763984487960760531866484218628840539169057410644842585477704869871417787097520911365472965653294990015521892913348805649010130768124727783929994219097542440158284216435372877738821491999338642923776274127849635145110474618433590712006614226387475538774907333925280397343794400002456072704769134512093847819861067643804245383035081802087533667902996927847286574026385335685450019602645395501643953903954890946874773586362246058492251933037511338669152152554892664599195041305858083255495312065645315424842121590940597834361527853655689887889552687481223730753632643579697353796905291112750209807409345268095569882439780896808880559728923834306921535893899937480838018552334685324167612896949636003490072965773632328878069332957756945019686919335174744868508723133394161975315998085571778722300547157847335637801946806382981603247646199523190879672691006768624781471579156345530045690339526650762045394862326248985726396397893730108724079542664188373855188465493790625084259222917207187040303405623875223856673194376211326738258031466662258103254468090926075897293747926363167144711627775306722033548138833958765130310797014149158577162603869890300317132483526509041079888648737870164115139381985391014476917834534567199649821549549769081228011117239645218366643444628873811139065581177143543210132027672944854404482789813713827962138833708007600374982308033479345251329980333253901596951211910685435297833288400473190542781622329600686902177713717940760810255735837957241290490319484664242692990344554458806883559885770070248603140929514420132020439973421775647130749096983611214589663759360788833247381697540150311051313412580595577053810621429952093894127357617510796784774204070493429691076415833196198145318176647748016550293425548408152753388179737581968442766090110905225012810738291992672217591274070614077864533682089298546262480777487034276382835568763683573905884503329543660672700516064609056921900022507113760330602999246157650108529417614764748031101475055035050081040057106105944967670851931565457511105847619049287589188772450283471649658695699944437041843858880047706900113192308848299004125343995911283046773690922021113085487398667847034722017111934676885684009708277054009480011104117804530804121120527607856572799820611191613190605098571153554562393786176827790008563619295301190580991202861683848553987954203234739724977295460265909174663353766184926183705879829862292553889582768724825089130196863930487203864586623014255273172111313653592216342219029813475203833908043126363626044826809904038184632770555130254157006903819288324803410417195127603018289532111633981063736177331097293495792974022266885808013371485048251983731818653902957876950614826689885012400496229250143409858610369601362982915518876387186918128844508552770272785873720531731130166554111526918455973802148999313977702878148717158312295344652530866815855779050408437959562641814549975437202026205966602477953439082586597715566534669756075006507399159686806524433229838041657973483490034328443750581362054318645086574333732665842638277719570946618281707118334916323055487107781205751031387458271722090885529469615978332352346107801339491423416357574222135182104893745712976745461419063815940953021204697545965975057194432220543294060076708390178940054132540107326898998162635341398205366590618088818935511360045609417162483365123217820496877411094357013504370811184867500155542581980515380748746965903452794809212465577317432712776512314808329616513136941441477755156019548561971539305107125801782571194649557234578221259273380757667015452091228534229758779081193727892844720565133427452436608147709743067279438736571395598320197305239030536789475076707841168986217396201739622232143992502049426155480016880321486292292553966594336426834665939396400156027676012280085890772786153913208512396239866240404100940853635222120854364757084328191038579338208153521784348019272228538302804123210230956468057974879938949456042397820045021088386124001958111249016309597560849327059330134383872444802349538082178768438528375538668003725631265432855977811468528624765716362443078758930462868833735764789454646391993800273490975624250436730105414080996774668782356574189515693482401976542429142318169643546123075470618259317894809456599668046775832220423160384406016727701301293358656623112509064905755928033790757823943957681869636411114486918010659889955400679622957245785581061369225718617600515175705548640310301817900111283677028046095649591282253966614434773655626747289218494779788045828177639327369993893545096455168878422878207281406477030165052912123891871177137890028994624470572231137356990068760647859405722867771092751515525034521201086475446381143215094110025282246700064304634313613303263658445134000604626324410353957082921303164316599364742297073351039843888164206033359001724471898381582566708101809641328673971153088547812310543373748413907771713571402500868533220881770705748251147530112676781960409602161195384520876409646298680544969426010707338005131924715157116344717809922159105538812386268447061824187130257222218835742073628583523033765118748995102353183439056982660387098806157919183050716875884952340568614883920262401144088168526911773732985689743532987460709029137611855835425041036465381801672405568254887541046616580833239465012517065000120246702602120457204294363275520206392531056294009203260351209693873749947730326350296232449548056175906781315713433424181699638872061150165922634408921253471780991203077787394619326847318621197184773724585490645456618267841728256296218588959815780270058619332601472694653809721880737186429975353562074577228558531688916960881550149683214437644920117744565574921151052294908194560233402107571416908061018448722891601262868507200647656807246484096085336092015330429784051822478976847047927054560127089267379333562498158648481382102045212475149409406835124142620956783670482170060020630896046848345507642855045615064189322232492830379166288504960173286078869281417839832545481733494220188247017164431490878884603973692255082313295404647844329705327526550780764161066023125187120818769783022283898282966665793990506488738132457539749707161615055031613158723053948120805653969905948174564146784068298014848784127356704691292817504137005390003920734846293597514988573042728253979835763191423805728938638022972787101112999375308952362739524960121252599957639921201510612488919695785304764374607884950220491255140967712585406900168249756554100187882117876960431627602198577266962372659006835162778146568866212418384170116530548363371587991270281937454890877107887198004787655564848872691480922299735496576648069621624298933847336481417927767193034639171729650337423519467845803843311737187415066864632201280089237171922511912358853295581338510954667810636053508033383769064965492682407101736093763997697734361096792038718110569578140167475171864812299924004649171576886852553046511047861193106079320998519089867714581528326059623781383300927992908542398188832108355456485097868074588969760103526543533097363874015381323825515612967740639960204734370530257655336404368915982819294301591985518945100571827093408961829181279542446293355655761041367188010601431306577597393344925615800562847619116056535476428517380240192322800091928897384173364216707176283498853598016130274887223225414122378046211444039533375460431672445899462266009490735363218872788077323279081655284052604042987478294972719358783288724772656111949476806712236612729786872075576855355279875678776152218588123667625867634445848419918214482156096711581090986724589904142908586155652527809683440360609784456295548269607070988219352804181994738491806993443966936178497644005612566211865998879723005304362112805439361972854526896592114059194030329560502253092231656101349201444336776848224572212712470528161133308122068447644398472434511374539523969193413365148624637957987670346277254189371636090484927396326832884463194175764468264606109172066544726321219817984812957881798055249622030540168440652754247206900910163660927492376374257875915996211450348703594132947270079126151645382516026839134575126298003211282318078887105500952776774224451593188071890527166412230831124911532941895256790240447244071792008026207676255225436646375089182842574824628065897704389160689972071307492875890352269786277992787560449332578813239596470994554454341590578259511399081066546383857728464614377891441107864915098340959849925618835310347967622374150808748054418736143465100827535386603593032047160544053689085249279819804829668645207698772509178102459882123931095181891500838010098232407820528956151102323902057689164346951835239583570185429632446697604848821298791597180840218246423335627420292500935376172471051435728465409262736787180122947032462314206763748918677387974137384672079641231244980780710913724559933357164677800235506634594047946653946246051602954958965482392656187587255247491794252250055448520142688665541848938602615005088969189647444633132329598763923834687585559326630831735550947189219878992937513968813680121119512473941205962979735499697631309879070547312479155195447040851575535551929700860673020798486678241001302298811220368940018272520909321482171417001573169299060509914645047505592292670995080178525557308177380478023209426870264143555974333716590107244823321555222869349723279800899091132397560733701308202847709020260994601075108744504655783532045337521782102913087580376048426832584694564733721743015366848967865090734838101889519441001325978126092438745921470896953356390344868221441829955312596310456445645799342218432324768343318378232570449742972156839147668217829218838271486894222932757000256294435530481638034833889672698064543844247982512187670969746396693143104474472091234392390464806409383396191975471695665107985152526768610367686803818652052737582853540591247613837889555622990090619525114078236068974949120424401632359460788289159224356317241950495134029316183780016816001321160167074701277883294968383354387589658954720269832684631770013502414971526249082320581544828847887645676771191725581102549270335521452826563988988955936382636530123323093689982953046672428771424854360501454901745998866316169003973961977955433820102413590002316700649049484441840747679842353412150464228485254787036981292145680954670472956103460839319197792940484086896718805806210617776740209573199844239804267608159321837391412866425221699656305009934108847960876965150950462239292321831802457161305953369083738852182402036392780013231930517092194993859153165968512087796240648509171851413752217122619035725341100451578495819956556537622561381041464916329355729904375999604245268344007945687686262761063980695948171808401758874063227677067655079330937707290572129056798612676473812715933660286166385898904689963394437364304207466178275365759783308277086697837671268865375980841897791041067744023490210507355467417974976997671654510789783305202585295514251258598058755587497111815444183185931566892176746054381592539168817654202706259723696835087022299536293804939975243359056833242927215955093667813964463725242042798277283787663779142643584136200050300108993555471640992281872286459323346409967371333551204934825469094550771874848893068616502343226970001662703349055138282636748392593966017030396167955827994685747237648815092665587765802158919502034915532468538083848437120171527479231395351410045312360287568407895750281575778676854128224099910558938940235744347229602291307817569975004608203171159720882436957049109294469297704716357393690950363284607795786894297952392251968754989269378341421495840375168110546869043567136557547335008538946586548574110908716957929049804998114960447151034539242418354887511677435651352150267050390027531267997360183730002615621267554399868686589554859214726099085939689601180802666556815126461319107704840734986474445638971576354905366427241249142223590866244233759557323251075863312959249695336429839102243487663539744534426664339638485742448704665008776827612909570093546273188120029011202794770238532793069783011621703733315559400482440373952397182139898936428835186853175201776585158152089152746611277722177825668347720154494269775483257007893955446709678391241009322921378367563363999980780264937108551391679534590388201922049270445094733774586268399836894561732046543987258428444682862941296572129405054067555124681202606092594102171282683417889571188629727675188223084009623931336437206768718181913024722276492779307129156338884291040583986936139775579624941286377809466792142831873515155577508094384082797386973013225633404364237728023834724259300377655381084860354570360788331094719892362724008474187253661528524110334673638767578612411695517329461357007807235142209606831993647037578703511021741173816284481387514299516404109702506980632662103380028805761550904477277975904659926997234341014336874256691589228787711622601722234798398834785714626213832868879584866073851929886556769203289184653611383380830655397981538503868294460500999331444838060163971338291628923461518386372158805790775658798977352841565270491200791625154339951403564543415328761397554691210483819441501283299845990558808471633808267374200755490914021617494050630495231454084491439430508350912496201255534940899927038605612501211901315623282825838461728944694525157674785783261730704890818681192386776705807865872322189808598392869765863420038997687752155323068081593849942887669241481900047232304939505944893632606443334951218365196699755702876883170909750812700404922104740307512307619196899030911953334985249727906679647830136602341794662812633828624485347271718065710611252527990090939199166474040695174687807474509182923303167821852131835941755090928235772341767427993312839845165675544962462953717503107964360024091231382851469171254665357527117194584831274959748745971064996386674613066350504378424066722171237926468987529931600664362849282726655503408683237259851907476544629211163636333710984244532722925778222275019145126641358923224820088049600855109985843623585793115965397933283834252582172226522139240087374053905254437977251028437584978288655651191543874707451462697075778866286410156748688977559227944234031591716327991915967601369382341488461940450480271079111867156297587633407688208662119759936862736287053869659485339061970728051212274341908196668762203038045877010177250867165690663303000947475578893090105288346365653025209530743870101658679795685142274780440400378011851721904674946258289298878772111260596008006949640656207690419061779079718702140304799966981088789774033044298815631626307629095739790749509346727826409327160746871625803607046785574191894185436947100219577046801411929956421371893610329632023577061336270464137005518340763066987566546721217714621617060087320653253135695650605596164864516129308489115193456723583838161460359666264552748728009149303353356493992338177378755827295957220510930304100608737697066250824489275590178176090157327260524234938104543411097893004447492002873641903801314268184885163409175709612393950817334103189132623460047486966234501831657632619098015398678493726880345430211031204923396813115042203459702555311246444518066463139309675677659779779250703255868797408435582096606325579397898526693233947842843903808684163319090276110652801217234663485894005101971239374505901145158531930080209754508541455036476047648200725062395691979434457070738299730089657025573394771281665812054621333867187067151925113737470148592654201733739636577676222003903895684624435199717921433224001110057094927148291769860030690104250548403538323687617059859421460955813957161479145335902552884146578394749741918733547610670154478536422128080151677848906592806906495260199176117205429157903427689364435535247487206155354048530559591628235099200008992668111585672322699341022526222457279918247719276737738648001486415156762969777881454732048761924700402014004828086954095929426364058546484749402888431848825218451540596922622556372977285481722771630849452432587603733191134973187541810516874492085986082121016094383104265597867390733121880966284968478800890501243843763003567930653631506804036090792915977401387391150541722073782759740668262934075892327595168757524899348644869197811647153984572927446006988476826387596552093925046805644841501135203952361796236091865232417851358999930312335822931121889696187267926107856513047385765120786433935012251242843155253074132084595184198304926597969630522242282341145318091836616552807081873110680880036565522884428093901355898257982618304581239411063761006068425155800574080073354893705935332702988292937181291278672038783523688374092126514953006605134005084598164113708373863255812850286500733495133642802640781596261602121857486726372450645909886408969188020392368735889389358182159777657944067869198052867752537044839633887618222179733450546781054476180864175144636792153800353176026684394704233501561557200439872292159455902119530005021038370096541037391143004418144953623178455455673720653977595729865627059834597186394613467133691915848879518593538261266006422802843103186912149895173938347524964444842569271933722868155048129610691632712632567605726650426240433322790542882551481618273055971571182043926388634861349373037175019790042980138494494425102511191320106987096298744475311994062656230200251740722702878196217016424784591334995681388122071044128435157614913871851900859706987147127888948043108652187969716554173232087661381347128765685098473266852407728431797633177788083519438228203187844088665533711279462642918403601621745381769617121627649019064469832820155458517274655431762199919592604804831776727006505067691782987660679940264016112189085082395533511882666680646730176106459092647216488163384599649930900214331761425713570122921378659453645411809785012930005178814750914385411530508867524733289851026106753831441071812665567301878124880585675852389710914836211611673127186719768652624708111926900162933968391962196022623221676601187425320229242679694155319298999388210502466159401635039214956024293623341902811502609719685260851120733264159044352643114117681163415072516971212103694988739617256812267074988800112556940946928933309781405385130853146936087694969249237774158523639904852669211010104424811936376222884657712889920838881370712729837644587435416749507233330649321889864395917968080116410055029353429723128515062717745564490315070750860325013391027510239328585814859171086650483875567080216900121811606157751483057029952948631954203766525294069944292056834792142743158375931784648240716804089378715140463083218837016653157961968559674846941409076663708792627056407514806848206345738716169457006286539754387311441008967774903011420920273407863075723450612849737193466677370673256962358995433674340865560758137248733126319162147537960149120018851028411104666594402428596617675287265291881073582406739920004713356205287479987224554947617056252954766171575922249847642771995740998989105306060958092651597551084940118237388318711946212916838854495587541952379324131523650654801974009283243830385345836921637433543714256705832444556312922946164837461668363289888261810561706273211970003932916695600954766145784957235515118808499842626037737522287195956791608991897492208363273125415474777516575900330785470330677177434379887468157984280984770744314800993629370143014337211966755332556672714018279114260352829597727005467268013339635871054826258239113582450503240886443160109079937886389349135480709200044600156599948024241327004037010977488868395673398484379038171773576599726630579647290621048299932545521577248924323275344010127451369993586929045493177956256003698410042480015992388781180099536793934894823721441341264181664349424204133152847076839662740285763655896148278203120522498179730028672387292728497015129401928174719092006821110787609402357972200937283498547947656529533712905196166015431125920062629265574426545193137814324128145707601102587245828735388660880296553218243902556932458203975766104238864066436839192655108248902398447763943368985713625805889030639473768063252823687824387112665862549083332489118991619373347400735537160719927540038164163261548300253387821100629051598599583519012673936837897046149290620724667398290573345840162486770890915519343305592865306631229837061310332924062882364278515515074240752302986121924321383189613922816235278220459394051948344902620158210194787094531824109526785322367329288858019260624424867752400942842946003381501245864569244564337583935720736489669833353385137783890204220450814506130118521554425634905859589038291286701435493459779106894581437442441133529447569861680779755757539839543188617031231801141308052720999736987425591034083990626852473841798235095742915113249428318101898495273731487634558461053693175613694369680495950275035657980959199281045605093159591332223463266048957362461279988419181919884155671630038434855442559426303449405666676975945857041294404849165812689957853464633229298500228803789674836007980410977597172579843570911376558004224481528826159522243467553467911221762788968336828903095344036990714528449402861039584388891035651367935105549463382323831808875007476235095843139288768327257527419949550579886286266989820216363996449055206556808475653807416200740326090336682868656324125489175530792761620134954919882368791389020675401153870899063384999016363975792125976992522120023377032294978427205587508600683155757702752216137547546279270027628735646451760015541732615019280464846392699516471062343364917907013801591730318343774891324838152253394291069553071459102638405563210554144246581445061819627693668726896471425569012796768318051542391059247495952343895638146437759550486076733063073338710521842575381685625000709257293695738415582057660994074600941969454404762875555174153034626212765042072114514555854382023196331250217399771902049267099317020636265567234148311719224071145794702307112672149947478149088183281925862202970039925145653074710080679826295386703760235671362819674383079980196119863785129289317148941751467378672792446555332106809807615418734571501248538009999338851494284856073757630431361661344048418227143281226662658415871302988447972157327845279188058006225081551943293505409118609250209816214274324279411926075276660728140935483562963831073980045029492659641347138093004728465755799708239517467791868159645941608181815740319727749384182529107605281972860344857106703757772282484919087440973188167468011734575915462875274465316487229526347912977270159906392516122148587734171776896207827887182759782995431577192819275136782949342089128248809164288369711198463740364994392473630969826471596286351745023437976435931076703795704486954930535621017161116831115319357230958501957433431590878796647463302665876693505755747211613361722267819427953258116781534114989576556237948788223231545106816953142724481212378290708769915737641663309538702988833383627404004502991216434230581696043713025650318260243454477183535330875766989478663872337965825638272155511935461380398836006029967136334647374666453460466378825837305748552291086430925673745013624898916655305159077609873048516816923217371980837246408982874464693588162768736282865837866036139558633858815364930779908900893918647614686645608983946003257534012699323430190672720362162726234067448663662882558051813664170928085558423140429874747243314049145926854946218562215183089079657532073030371333640786656735883880842002104127565521031410362457469788426091396431963188231170565156791221196194015825195290957225746982972094978199984721066315624721401030396797506416462370723671697188717887220485354800387087431024805793685073448301945719641335715875519093811382037037523071140358242541836244594500081369822244498335416307566502800257575068680657211367247340395904598340767510589471669367902310887362769271181934707758857095510279740541245567983782189187967659532854827899154190746794092090798323147805994288531760580625455081678851528491024576077172490781286956598282783106736747922014526353635051477955345011236960849930614354874212968592583175488309019640052994246367561486045199878749722680986310090773228340944546246462713210209530945087641163603106129273432732187469898388823705131259696992038502565635301220373248572660099154622555733908798911803245805513116879877720209334140765544334953450621494882065281055095584054323087913493199339157674472272479487357734064508425524085142363559746457147579368919480278761511636849642405925751780119350479360984577329868982870014118158956177088050153647726178598046881937734133787128027522227892214629023020757800688659240129427902098746169128064923087338874920692817600207790557750228810955452349766699112365972917844544659423607723941744892616767965981004399567202498852804617106558510123445046250394685438398504920563692490204976182061452005814329637835727669648844876368920278434466315798731912129711001658863198995800997333209099046265647540306197330770859923369696563387531337433134022793328275186547188619817190548535050642524094395755508903089451803419711428206870609512150298410814639468127910343490527156984695358211693667093103837977547846924300691126320229689159128053086644623956890720876395178112891755752442213464558219715866500704589008749376597154029166739853977785361488450284617468800471730440283595173393244208451993140733315414444107471976773754862287680496721540855886147495276222144906860569336378706910115747213460849791288568789144713242028791614917265405645065926890854246717757163786214745530435760442048610080300152727303567686884228164837222729232819619326129270833431789473227303659736940586955822110033553601887748519876513473810987366083083086455920688076443435265973229093943915990985913062884326827371347900998052350990599953905557770711042533027788820665640429356832571397488544454954712860395822977358292281558357522911020829364254055563725377281583511084787105480857231903046834804301323797309561448415616746851052191894772462648546812976866859896525928010686210614273101888018631717137577680200630164274535333689475958657285992935674722466992833754315771015403755842023970896864200338761608126014252874754980462884100975110498196803526983743787372612648762698287156022347800826501832284335796988474970024485770811060390100213465979016767060962131354625939019127827636249256289311338477292848451824865234548065649656383201289309017217539438218301330360753759657717002698814711437581496547218119407866102216136871616880526045232272529813370128670228384277782293312751587034928378790567697254199048486539665515806969211350544785460038791009142295009619526337036096499103679898692000862844967666913567566831796532039108750701997386533365731701367520661279726722533631144389085947832916132273255973030589451028542359842611137575132209572555283549740393736601002396717122504683521723394494541514173080472272048270344431932976063725535070477216262848686695859555493292562847376954730474377018607903056525281566939860419207181137374996378250704765188231972736185042282748252441173090764383621581510015505257847541458190730631281588123237399425598116373612535332520486791067288583598279356237073428313713416893521640406096971328664274283647637503840948470639382567701490981598537963782132700407409888644904905341905362984493499889028539360161737255316147919753967333009660894498516320029419405301382598213641470069196168125999422776732696200749656245264500861676121687519367039700138252469691601628978901487941312464868265475137027811981078731524245642235293752711271142255584803807748278042347800024223537764037989462755443611236088902886105272991376488128707818655996535966560454304679280748201609625794332074249519316592047949289800271657254015439408293632704472337623331706664673698029455554775983654909586643804443143252578720061769828533759979369973839246557195652325583588236363363112487408984838897762640660610444719983462710106104995991323951089997731827304452220866911464865452028624001005492166650746166608717772821436392304404462733348186792723440067149262530794449007479995416074088103291316872788286039519907471825801281988173015537174366872367339522778869667682980947153891569268066223501272149627592205167776437968592980366144998715249858785051625117010396900647772553573943503872030348104615137629473388170059607617736035529534975354147280047170445456829657068004049198810853043397660893987312785662619753670785308505332450684000519243926588227715682210798922807033818585216013723134457948992373464861596241158908546792530698508605595864849947568453186504439995103235693552017889206151759032920687258020139348175211348987012004576026551625447838126190554074757443383801660518716218700490919193538694332267775720043574490019722665491777341062475626574048810021959209133259703271979435622036246130645395581837218857176033354978961647733141542358763413728708346262280882369380622853913048324409673187440260549760672693371295500427584604790022198495774190475860418735318997270756153521999610786424739671088908878722507473016950917031103097599051775124108884321013350167121596430721592585297159780781771883334455870413409231806885020299049676864928351435935765491788370918452602156167528695628182396880028594763345835657141201238212878455737716386476289874747116428814504462369233021480343097924897452898652130625537934337471596194487312712497559510946687055472279905104417787771653016436866007808483143419219661582598360209863793361129842282282750505152490231841807999575539836878683824707936221662706006814030844880180005224930659734209808815065562020575964003081068495601901272367361824609135885369394839831253205558046022361433630496960706253186976777810632329859263210838890704335282080982171174757426123810534431199311598586014555427538573173930610262178893535475031478580880558229976619337076418849061289388032267900844335938679989778614288595652862397397222070679963449318179234504252240241713711576316628728041545244864108341062066385657243850882350701773232412484070323902983156794125794955137003414749907864944549632424639305309593363912277128782369099131575579371434149399865235513750319583852690362313275379852219316370606331290070154729366850089763088312818396174988332121386774496905780008706971808216167531264845397321331777134031274984304881542214917592743439024261452068094816183347882374039165419355083809670918871052855149672293239675151972820804425311407955178502289624809444780227188125314224479316163808366674809063905653244430275971172033149097001464850454392044819652904013602222001164543688461478280407710010518643731974115542940894407601574984603624873615152464729302324862239494770149574737065881904985587257697826427120024768532438767555054439436174919395950093629087611212338020730593138539069867725102467883680203798357820420742336508215948445044064172818144948995216004439622839991136588759395216264341199359693065448259923467025717386753924200830534978520029909938034785157136878693625606154996217439880117147211104797490306366434016859837089753978192778617942184777356679180884717892001908357235275966212213889506244230300851029228372352469039593381695536744015749298650125585678258662705068057388783709392932798765054967129209245695889352173997483529903794946853744891268343307355743842712286054617015713810138650767092474565144594110439320109351115453870931835687817953591194469433047752183505370660514896319985149447798509495053628023578594057282467044531597247585098994959034658987887314120312872321758663982985150222444811497638497062885902805634880133535426690899686919923648632315997950658599936296735693849978678508667525756134310482055173535370692061041288367686954533805607279583401398675845401860324242965139564297827544193287720251366365133517002931995986198351758574159511874671238475133026855122016717945221066115112373510077126817776575361474442291546151138167950988265622962813913589522044045692125438663723038724634728721626400972316856207177642178449607578757020327545712205448439909621979215741416188087217769003603317794350282117264369031012070431294628399699007944132900912644085812074131798137474684220018219522187213724445316256467717452041085325154780777241349983873257506159834387632164325845944468388586269737763054154591434325692136015860846567717230117171582817527416024282112768478063476402936247742870627203318031879800234370028967001176149168653919166490553498942460864298054964565983873578271219475823734366512742433433530335079559945773802681860431715758400229561977748996485656443801925069627746439174254572739690682450161442904141607170265966760075236289707056340218707050449230181555755641639510011032684608975455076909287827052951761131853855729493935759169277882135541989808486319414394118123414238428718439476023490432701970945234818652425433919225122825423185203287213466910932088669588273349456194367918215535496168045184824084456898177412808985702738451106972638853321474262857004935482180955756891537916691785349897807513617734324838339463777402526996367235811022584944480457149908422729675018872370459226258891243180940755235401029298816462323590796848467197789911287060316714417764932602514844035477170051908940529145638927413964788563305712244776547498930939469952081061420186953581325117379705806365345968736799195655087988539661844260306240728404233064967934529880797215532965738637841926823637853096581573616315757514224879538729947476774181516914962578226727318966527177067038791592395981129011598566726255119024642052008685921369359776563298948193183991895289008803483962796572464792602583498298451835445554860920978668193942905649146248469527334304447925771385411970579877861906483292337775471413022121685325615267718991806131123053413558757644815705469273670721166306742646129577830178107357125171057564363142355876328515782680853316591742818714886486869529496663253590136006764400603099181485046538509120015552304775223946242175716467359694207463998147603717867099342989851319254314778242114157471852241130369903672461595858650843341142009726595434174592339332570699251975134409436912808832853763021765090455842535762489496209953548742978319938613833979356644210230732443135690837669308118011102378489657137284223292973703520778439872192927565938377626665120458305469657308206286734214906008817544733546326383068756781638752930477569546732627997042555270648748122583195926633543040941436401622172766078788099008690637997830008320589103121079037792160103861794938726169110593655527293672247965346382265744707368015467466843547491999479528206995208305286385386472540580502704292101348956138324046823614627442968291421078474978617290062628662654760764347036444138917639315646233404381186726959939462412847696825869757690829296882933219151163534882687782759329978138547933325332936519053684105409618720533648264619138889387735746220386956924923059920391780081290467159076934114127195569433269505703993850922820983759000291708807235447380926745791840155311496094724298007071446898107801575633126821573472139072563755181743962973699478168963469833748450916730026235138214056890933503468783738092760709988833515548931168693520276606903071139619061373193424761745487215149461039190635077095961617280456979313707778183661985735574537525469811549985966712152488726987101215575909748434603359165450944707750186542123957483065395799569269331884374793941671234954263340754070847103724078611961473408428084466369168547771317323994365720764755445671009336883904912252130485427090679656490461379887570608211935450863175610264665138134207437716847801509110702857884618394138419585586877540710692707133006145080152411374079355694800106250757080644341216513583878771004126527975314442579015143551181849652639956431255097068576766277320087415926753034695236074477266138700414072666996340513430715446425260340536261451557812551493265407463975194067405233966791544234694964948569445877814684503060183602617884025821995359055018878510726062203362301014277083667083117295989242438663143671861307384998670324057883358168866785552124860557114494464842446374972901528137955956032598286281407504394700421035982911828806920075209458414198824293615145755861908836881424905475978010700916893779832607683011852231378758213182520704910452130058368394624583195303128474865984907458369766586402628150259864549790097060198384055381625623119270637209906523887970942946107055978515013651772411021147808624125349231050321267774288621497760971114830307442450615277051038800879665171118487875212024137414343709745610781997350931086321651256849236777726444830227662031152131164729248182039040993995640497072176152028668048329701969733677052549909469693666572826759711110175552553972638662517590669819620680245598787411708773494022659690785762790471275881461930170887531301325130260896140701031747633974701106662282489437851805581189190642367154891071895265662309204549067565772932027510892531499158495903517576906177708959559715019973600815472094662042817562896766967060353696776386530832879754935098401243181410623941967806532902083394540302580272012730724781730934157061728237377745284746023095864757755788241128957631356768112993208485095950091703893468520317592839638733792097691920009891343546083231237346645011518426865690258447538427269956075020565963248691337843702984525851318184194350828921866174847085695247731673154448075478338445024169438013670736269607802331453574200531098975830545192135022325736173734382640804566118024867441500690374280046578620284070772692144575237507901214516101932802315754136684458674106256462415392329098230100340183524445447368327836940363610495660208196501539888445509454543151890468519113839857868937987016407092512386058212907724513241689402365578649931967641020689865418412226989900428289462158250398379865517082481538656091373728141901288681177327925926183603504347340947816863233735103280179459982372502222787320482213165663413319566714934139367129946329637878344128202379433724341199722333069571071933111362067659570492328016584466946202897548482183652290678139820203993235034972974621441189024810588313109051963541860077052039630944984429449957533564013863576033746107673950063429801055456265610600856179258418703086192569367403163427521800416571178666609953508072635328748949348238648740342510699588820943837540578389446912858135916626792921978314619245744075376138091579574337972375440309495543243286447852963282300420476643339348509892481305735346274798677572565562379898797383511893511393638084653633722343717308854360879981678749268136661613643071566564898737568626084292015646060038973395057727685281208033988998344736682068613845868954486536892204609617286488428999240601063395547033929366345408907455373641656622423542931580646615452412639635390156611153710621665211108092771838160484120923844322276337371828537463972134397308270330741221846114112957419206835110326270886290916973565280976266330193588799191421034439856844658586256922546828761823213962315196592228559019877820270277019435426424736796827063883533957371700540823065556947990417444763149934303815739781026603603737052376596911310578459173655983920869037978219539370072876453429398809662908171778376704133618825662435303259797638646819211481944455899939931232399418553938027571496983874164172759078102067573975285682699373773534821209116124967910218645620731494062465855602692002821477844425029194383233871817038093258070590636104734019881645953033403927216981035778668625142060826978215532318216993295603641259474227858128844410752900867860536153992276085682712930393636795444609191562926910707065435712342327452728350968962326032768813162073935633142063327687328439724049615618863846492546138488636932730981723067857765436292381471554046494884503465308405228136149418504995175625697570921210920249657931132923822961641311852423551807781028186430250193148538711912890291201924122097890837681550704020640550546729942677723983834339476723372871530444886379332591591182467366739857751825182207183240659782299050407806317532281943298896329731826433054131550077754973042050330100836946926740982939859083473869841540330094769582521075196844141891105412905553947393421835429714278424004151466810907972595637578098966947866644029612661834363529385254848347968020638204335388692902429524876836014981938189604117101529436234467107358010072805154907717514122829866570446672795876611547484959214429825142630158163070333642599798359215986907321376166105733679926354700647549801121780896145512626519420662483309666953014082911735505419974988692141636529293613080334792445807119951863302612055199201261830753978628751062383210597977428493342212045492375510664326609915061184155295038753977126152826521991534876328882451131891208033442147100700641165623407517364454982478423555675186680754266658481070492970544036686162131374282163741333781948415093987708900931005901110236976769900759260122036329392261333281642545459658391133639091254967878719899162643550297945377642384506724205270787085869065618350717331143307088110261899023561872960878868741937554599838777469892300614903596880865757635721665941171877392960299551611068495507218482482992654718579988065310429891021258725279040632558077347874030023247014477370276971928559529292659290467210228945323528802923181787774324496571833373396555700892275437628813124943039070549157681412375565046598474920275693723281232685685026851009371427699728327374511283077945944387681289553056247058519332124567261022249698010028607393631101014968812075646796405551070329200236244295988159640764968581288077673254498151180326610968326730131244125487310341214596506881046155904281921947557637206634879622485094787869231806896625967880098137669865503798327453719774556609422477250101024696923240119874347352435215419215327347275920297190312889227051397784334162952208636254947370758665591566765327826839227400422177339596904609159052788404324613931235432359731918030469236620574991611917714217064367283349630479487974543397329260661009447906130835371026629240449718141243469773251140993690563081660972307776817744573851222791114211376645507807689290538162744396051589351566851515775989873715208563062591226436037097955346588332975635056890940004991522045811340831504329582607594903479565673342549254283927561702520146182856730054227332239654333800174688625664048874786500602010929752073582891759573512709587094480909601038148614857578945515816994421235057483371493051918121877619250834385399305485290054997874509226239517655608392075733534549142872254723823179444075791942761629544071405643523853287106568292769861761331010548121466274173072643376534484141662612525502707741161266485859669724920608258025915947927392183716708565989552171862574402062806406630028075683491632723276351251253496186444288564939181598758084231644909013607355384838886174912504962214213685560296379884047552538346102972866195197404379688790286004459883836879427379807917069837538603495601595931005532021488336061945352084546190327882969603130688472025785063365376773357136054163789215698994208764950430525791277991807526198275907144778093269168811336688896451043852765290638550026617584748095293364908341711231488170978585012580397079220613838974778040835676754353607837264270054788212076953984643673626524969712771253276995431923254401636782817902705284433669728607834031000538004281188834588372487448224407200014576030932802376402464594937960037539607612780252883682801544276995522348372856740046098754455449168978894680862005369838946349411362409792701954233607218167871938148194147862441085518929702996267934207007009273097117052084949048373857454997420303293280028910140779480621820369205793613737810976998121559426233847830300511485181131322171412795582899885193320567360478110079285675995546281717661487508164108135408839107400882282320409383581748206163694640555827880870883810804195075744803902714147843281046504432475144523085998030453193782746197596567690036857467493830359906990335057197531737551189069964462735525446742828347729177796998649172198696130360793050870830692499450674387434771829347240860746322897173815176586119207726156734542561847755852060237080911469315970182631645144766307857998837030262589209614627945733714097679863265991892813191233325936016527334192596338323785878122254708276587234330689245111556985100899246660024800369065297049234447154273275280477168497662469736040749218566202997760420006221974376614861468369924846105925404536661749750722485703662479457107574134075152985717778536253859806701790742632287656686576570679266940157932822393290623398296463650694232607917577610474189462598789958547743338809428032878749669847705564182352750211521940523548601698098158907108938739268660467115920097996471352686645732909546965224883475761004807232295533316514684241559063110931507233627601349622381831120185963291085729633698320783928389952250943020185672890625610224282465028682421264377479515658696530134986642397153660544542623861564008376941107219915463375141576578234542098127878683778176050123257782052086281341833953762219313005287246470630202856079419944707837143661689139377434541553222233207087543520537115516507987363031812997170425776787401520750650700333433135656398098780617141177876606040388061251593751655247418446667802941858405136033886788985654687894004993399983659342725844309033877213817876316293110584051795731622473181876105090577699135961816895286946594730843120512320165132826050189542227039716758623899218708113653484043799059517026791991419446700917635715587801841703688238853674583230282373996010431982874204416015005470880322714652421194697289564242767799803240410360149895259834341528946839729548227217101469432002131129012894593028473609370195821028775656222203521200411773186855693532234464659453245508949029208759507400543136412781548502271492831024304328863985762960350799938920297202264120820443412170834879878502377457665515535443776601159100935709698179580593602124247782745151762378474951916606942467794551062480416553622003010808608258231443245341341202567398934624933973501457482429176633042243104899549624596903698180261996896744859012892729090370383746300456666286224127336292060447219426104821063544277189289229952778235112398283104151741338348415277550904848733116702231277081420831934689922694728129647476611536485890227504306962128221900765198441343307455042356829700297703145635700689787037200002200151694246074801486632404064728375094959637796251006012469101689578640414759925129641779279531619473735673303030423227786994682789735445148139711036317429522962980264136956779607277387077951460605292152442921250541813355010138915323272651591611109784806831496092843230838323518562787182399635394752270089731756000613962764821460843181320411051424151517407683283051947010950643756347814008173967717429532009450241847747425325844473635818405506594234095698450246537297216217759115627841086140248309138021125978922296215145046474659900813889008036944268190217090057495646335837080058825318788880596908015539064711020252762819558542750203454787759797579874009702435284351898834744972265420299733565453739840336515033865734505799762806833884169848390963810246465616269533789523517618138245168531805537558885407045872579814567477951181843079656896328300409004330186101421969338724048479309505037099798016765544804660180234052510200848845582489391858419860183047407575530049640500487704595773529797225564449927379628394682258198925801582681786761599197216003376918653220924711341500637487771412805915595836180655720904221688523073700680974050768078275440002956564804315238703394167644023700763005984898904468062545786348678250782461926336174895446019242857846190861507101126110970355719315696980741597515413772783745896850585798342090300313004917870563303762397517671232138230628938674213620274881601074696008683756811760754254064286875531705510683022469082140098515668753160377783327852837863564309494849627163656606147065756521576987200466074294445518006898454888766594452628646819105446113691729231994115440871673201808029605777492226598800074215642961300431548103455491138465989317121289328901516475059453461577341289751665657237519041974559581203020782026277721457032851412229823931856828919424027093165648395494744419116067742898882676877877419409344890605676851022772119199369861411103644217924182706838907246886135569754314522107471923357008470750003093226184055996237768562132684743867174889981991917680834323035209678954834254614606980129942198012849631468343549180719389540541267002410621475828735746391839124377185758395502122138961022742606067548673928236400631076500530276681171862664424758961066811609185996086936841199907902786154985831363500372203330147022450230092858826847973246706315172282186617693474902161033983098962852534658523594149215281366666223025096176988756287682533779948262017671063492443221127325584801976582376180318578383786769371161761402408172648641052275534400661697478530977687437172589960007573215991147001272194370077631251509170074966954243286035069604654991796358559076864843634326938921945314591534985884655042613314392938989514853046473420943904193106359594520750501705934524862600560875665407651758581476509945967390653328080511249660523971542303275202703487698440719505610004166731248575770209690372507131840742990870418363734154389750563429890699426317691981897239350393418099268114791668547343562932889606765302938345839246697580145603879822211360973965732492754504631138875741596459542186137798684894815152595214648383513182872931711084484837952850948917414545023386431567600803974754679262384924084459028831226764630951847349885880098155715030529199571980417830987977255712643378994850530171145460717275713867523022714234633830232555483685595230909237215132298026202094721099040781511961145430136539910482350211511809204805162556997957259354648917849989345166103927334998618713461490572710799121840363408464063754182760773072125121742872979794970227229552150561214806982957823948551755059108521866486610954954488246742833532190028384210722309329111342648997063588216580273703234448486780911659054569131953017662627622565165573224628484378865441057921139147081592923322388207786691936607164472127641666082617100590718325961368160900005383464558569933192744354746037717108852963194358735848872884981563052328030364692123334484814286998267134954733155547430681100927734980314908465098259684345349677918287969605047282374458320980214900078194621740259989227139193741673029746937544019693340430679521987269853113106031354627763299526845054789850522851216083068946612473595347499358190478450553066650131242003887550022339448465154350117976369352562318440709428551767792028350924940899318556376629545365434808980141552304144515948406847792449102394312599509716557397147318941138948995718046367031679020802894720152157919655367482272793747513944551650912119689585980302141805533791640086499775966776098514883076841644421990026931998855814626648835000381498445065320027063677678257078282414817565338341617200411437909720663106969344483759798414740578329274580735738271568808094788958976924202484894261973410308826482471964733789435851325774761187157680106190590262798440492919793892818842516135936309549494934417555271105002231283059662964032703829922602107200546337975399426976066497436642317981945549209179954398100591199503377124535628420489086897250966058576118423630637181315921262060309774901116850081060233099764972448276407030212393799235681196637314184368699272048040965701144150804849186613515957411760523076202358466546275089274220685038572476689833260198674062392394826120888627079182746869433953237189910018016721895305649233424113547562426241736233600810000852136716149180152104138365615866095448665855927780201237530899155669294001866823000437316676705316001835354333700182557310378186279784032405177186437042529380874416153449625505143424862544846434468633919214913791532548373493523338681007466084420546449807994603601701569178496936791100900567794222601049610189166666575835503932177093666941347093118439561844596652252544655149710070709148934949655040705438200905721265938857561419306180580897853984135150690174433145309001368821725662455282361229045409217970078753183226283207421020186111623724998946121982557688921859889843512265164418916934417222608881514044138365333752048705471118277351193450037416382134750841914898532844838301088442137777047391446624852763530182466501140409761294314687628298861463773336982539428899675915649964993076203985335958666743477668401187768552044645137343135455979226199983040753947422865681707014671292110391238136174081338167462332439961539498433022528643560114769943808549563972365345465559377425838632065602333287398791660061051035994932591724545843723140804539644573903864121684478292796490231024065138183849382081655585052971034274862253024453246668422420332403261166861753880788709475524882046221579486844105527956470833112346428881264486519778619508061408142235795336535740012608761804155352241757030927304261946509644506686401871687753514889023013801618558585685887394174088661475718874382718087663016629553174344620701809016882176611168197399284586480930197714845913537655856822840132861430860854666448567895449784066369654902842003647423040010583740571509144204317501162909002191247002911312481496496995679613794088323869364468660261198188036073632308229373958289355308018729073930601286780018231708494271045027732346246526038842167014478121053975711820873812707817780708000227359327043521806372546494310134448522043810716859573228417775492078731142639554807401111091339843357674658037594393292764943602085168265504099159232982876965874817671592520810586890893761347090809613850580921712053405287592198378332061288052636405326624943663658901476427541710120517063750598436427077067762857971086857926929337497379439563673657107891072896717283596470732112192928742265123998978860679937558451971484234513761640708445090548196276971667843328581364656628934093156338453119922575852321789501071758113814865996871890611498445061422948793290777757856790281934624568968630304687781036922963621815137395078197234180528350551042850221026722727650448904667849785380810980174917860101397663691330141347680143352649508155581189612445452283323577718591478282126107328366183594702769939030517305219268104473706027436428244359042074857702357332016346526089690619208173457692906115632837305180449363546312821210132899080466932355732685647755337228483721701888090659466539533221937330761283036420371234739564908937683163230997096626648567965802119817777436148181328117084752123620348245809822779301243535632582765795975255712442155031984419897595625156566759276107753200641182849827260330792353954732399544525334714664403791607718005634075790939059006713287451723480771019452749102742590101937411290054199429079526548792201179868133230271986515831837680109547816495265868895940755536679512673057166869197432209295441071785990702219451160898753667065560053116085186786830895755634802076686685009829487450347733741272008460857575740424370050911464448096449710463333059133601713626299752422476063259550358853482258956784685200919878260709931135044711092643392803944469837965085130066994480437378756695560735171834623257738120868803740946364739012316879368153001860401695060897645219607181373945067988680744415126169384336702248372443338631750253494105219405148277818573435429379225933999879006746557946517426761932345731261657356851614805681571115010346946295001733866929757413586344808678578313635409774158381721242264981602323948309355862668033614718539587041869192930228073517114307607272272437668801847153567824135086657045542856716272644304226156380682957138527717368281916111350514858441759832538774277482258534353017517609431428519696694763269558102748174666699244025719197140283861032052267091354848933390779843459044412801690421788637897168763094925042788878390399652100027897282172776981785867664291656372733865007172151017344428946656289898564884454608545702617727670027260949643364327236900067761887952048707738415355882872230671993550276671730733669659129125294863832735521737140580215093058171834366490398976841674358943791549811352096012538488593924402001752835870999490429117073876209250795136781122760898019990345596126653294245759256574047192352887335633651777803432485497794141460391674685859633479565452598529427764383811514298462562506888167289449639059046908478065820482177238038521815713823587667939163803381205259155282483683016469265564788877451509371748952365485979707515017671063435985892842334422798385273171080412240145691358784585935759784024492126938208712988037196096603566109258058737881256829677656087787046332184639847507238347801643150802959451806367778009363028126426919196003830068897813661363867902835835352553872625104724545080175934061918333930760794464949589470414834509144629600078372573977978335393679360195311671758392254251400779327794303862209842299720792076837455871159141354452228249741315162612266958027758129727530791505542012299249271205443965087970825925553753185012071943661941434603315296710353445142444953650289567721953393137677914437222127830712522212692959337555303994098606618396630911280279401651169219354691713035403375785935884377078601691539898964558191358360361969043916773396136499192936977109664550698183152076149218663745280781094238098040705961663276005423744709613637294716422072000253052051599729319800529647816912165412756499939215996031902729026174628820813606773312818696390253756732436282507204873057535149444845982507442530598609114364947233325592794711177165558856206334253948352641223697498961902845374116633965410773957015165146689332660388448944389610089932356912845405931040088211674809246839514022945639645624746698357930593424193575158564475970033000269570266792531405416924260593540764078656059297607705528426720176968744157154283401768313391424648579818132773737430325250547715029356941584271121781668552333116159895963730548683343906006320881524703788318778764737257231831621369672456277605338341162095849442174091850044663508739770926623022773036026231771719589209005589642274326638244543892034242388851713332064161020101320917920360074969504915121591170776445089031076647176100834677101336777625389274404408600403302373901443453768068149520351459348927873897162409410318114530576155900105505315216578826940445778054699945405036879648699100400206702168637163454064815226568046458917868715627135855037479095634322499723234908871095882927110854478958880576440182072135373492779343747696446514567645993734846490392983843226103056870929407684179005558984631316224318309523038446667991347965811342896345357020875563306939939913633618997227458479985379106611055047534021408300039173622362748563267594438862194377782515462993510968969301542347868819629240074860214820150748564088169772846742432951094099222128531810600809618692654379338243084991944702950982739358116480290819417312298881221431519982667786785784711399931271445383404151987390323231187379594133014102307816907678098164605084424127801155791824803478072983560569618881602460826148954838480749124361391879624554011005062903089336725033046670541663810709414165275879056704648590869725544222491284697631058948497788608662527387003555238031594922287840622364207305304308543991389132991601606952547484721031685150931685619753726450044700130861966934388084738730632568399883951693596463151810760418199266081912005744878335355953082759647692884955374044380016219576964907996709506461671565154795328103462217529619005407245780102752470109758446251030845181458728592502949967248702826980571412869571702351719695545441133703475351543970925716408456209879552056098382833580151036402184661993595956359282165289034014580114209914378168050662916338831204543350099453507587096728236655571161427349719189894243369770197498734166911744282614806832517702265413765785674689954436071120067495945843792846208693433686314570915032068759940534911139107149495414823964097768219929735914193793446406773504674204542279813204726676235894363526816845869679787367124801912954828998409096762089067967651179152508832702428823272617914804387647994130268655925352836389089722981772880062105570068519357041088932750476811915331328164358333217974047284695666191649282045581195790454158672847663505360491053919463033373591498105724446964848004778513596983718023943320636446211950268049175489140320668449003986398255594591553381221431862975028389811749874293274782973942776642731327654484993460336151089902748879015374227397228142623539978932913434920597696845297537805407977713748335105656623482908677499008655930843382096361013144336676372360059048774836477176195834578577722165502891091176857416919392038709398929322321409107312538172930313336178172022067790756622340723650115104780657225838624478907330951084596123902480701841519754196868620061662507967394927655525642102738170273022934656631801345574009675115291154897516887257055007828020654415864168483805324668685093889583298267536430873252312460326181219706613680110291140095089369968848019284666999244133552090855909673382309928303227206349455701954720726840921541069342482578791003373226199823487352998343300585224668702092145178832357011464343048530442378417063197839160805283690173087652170515108480951937601979415825597522953700719180039697401246311797988530789899772818532440274795140031130356715488094088922396797974884794737549795117105663478694480506225394403533788988928696654392891385476026220363249451879027699186875756607242386530798894086148669926973282869404954285657064443097560891129912881245949580005951204466761426416286431018221410280688823843060987907509578746882503664472094477835726953435156532161189202766159108745918937428304860705494811140045178763153042359234413851829682250340216521792033846663057679505535588272593282978642063587406159685143734951324431516243826645837302819602673327556311400451185320379314858504460765648390850889784927096835042886202637094421512957914520893082966469176372964836671922488233993762245331322504598441375548634851182580713478276692989701800705752492085193375120525076917814779635613315591647654588310172262662806706583515084450881527018809560443762922217744536806780113918789500393844030687997871750386677087094885107841459351770499063273056957785902279772150797341986249142083952683662021823867393712120238290765400637353048835328437796222982634623560445778664092331044314047387922173935178020879043701613524690356501884119955626210190510981704967317638145387156398344822473906317919197263361334681017187759327270977622485639779364721412958330996425981785347265027772279073753231277908508863927058935953904726909334268109831958744753711030140495304040810848687539352776415216694456838049896130977874279399241156500455797985627379153510239269576044367579240053196019313058313444008193121000190902250155635766287143702265861182872233482728739657297139831019392578536135905585732068361154075386758891557101952389523114819297983534848300558814998695242106625617462494700432241464248734506263097509112098254695727820729922575819671459658859608044292945163522671057609912693874062014268737312998713062724073024874637605943161482300506425710085123128303309344816684489408424389757402377361516064026582081315918727953900557044726947665758479234836400839448927294027142966144266963339758829954544571974717809816224399969811671420928358252200504221694861523429922100533529462721630876074036910939958987586867594832225500219523997407913154423640619231591480142994344828419519689789979614279014438536391906954868518791177242979295907456814804420199912834232763056236519792532181550463263508483282077420967742419652105624088330608994320957091801841291187442465503240050952050158100052958987729237127242824947446581075234474800304221015098236159124948401995709609666725881639323389880022280048790944557654073517687637821888365386927459488290435978605827648436677638433217368953010636922413842362395969526577800905024637155100378989873410430223833871789152617533064772710377238991216072258713964986240605568985648295716295136452546550210957837631983386731757568004014711459704064225686243323316771420567984114705725621005921390036271127810067954151428301767636599528590537872766604865516856105419481000368755762426449019222822666123795289929928637540272605090957019998068061720629458471479035422305488464735171653861648270558990356437258699865868733848436475320313354509948749849045380452607049233584695705651811004716915954319661330707089655267554896100539147585033835282631968503808375732292576495892788368905241231866445775273470046875214858808752146636875123172517263899931991930171639791621389020020669717389145272302644175243786657541482932351946882555261836034039314378572378386576100173467843704969448767118585562854527695541667941726591237325591595905806661363408277018953685894471560900983086820289250121575137683043519072413018350793900269941121944434184095794292919079914954679512718850607266228158483981245020826929739043452965410967309996849242482085387183243772218556053082713989335208586809368841965125960735649047331704027373068974986663380212089317122566543478440387140657925905240433128964561613040286203589980993651357896478566170995789207239306580591948102615803659137358614639642580676492723502942694871886945921361929668240472156265008078067894595761267749205648383946683338364333509164279546492286977462627025188013612617923015331333986595203604240951533517303788626893634096546809236904803986870728196729642121032132778853464646298329532115296662009985719177778042484436698172956366870015882384680129119163939743162928922252429974559794881930842487635007050481033691985449358410893743315542514112102591066810804227440494760963411677386500820690862085712503159545427883939146557863025638777820601191314637285734568751015204029604038868586458460191166358900512519636205908826472146550140257078858706851434097193442180322373956306947771385920180785574481514599114508459949140682048872329982268483279315922307834802878984463268439015332489140816548011877057987659854969260783101130670650707434195776271143716239594537291434992891547766573051032702339992638432786531016282254238754158294199310346353688772694761188619528355400400831247368002630898625784505419791239856533829137016582081323538760411825854845452328501851705296312349944472290292136144568316162258808441935283255798504838444998819304861485284990688606313958745798276428828507839862938350726143681824074374321144819708030617853053000293235860099922271039234379954429248447982881505317091749509584104239635921984799395140866874488869024873543348019600244652292305060622725624469848873349602798207047499637530782801285707434606518568913024360998762840594361334220488388506284753965699538776634479352698435538867661299304224578237170610143858428905806119053127734858690666988615399465154313003292621569751090528697855631930413709224519035210576461749931574257312168156616607311239472927447721501850681282170280616132544419387617224551936508662014259444433494510020390630616275442188163284352144496589678440202716863174051193832678931602384266465642817352083888243009261788704774597905849604556524407438978697144928197922137383048211013969267167771184592390454388120259825622668297812505967308464637515446381265133250703047682922448343333659947544288735345559479604601094222823377977002841354355211051549971278046444494049964705835352045854587668103785155978756446039030862480336664394671908596095398772608547181632018369431635614300306822977662346544927825783659713249010947565724147148723676323544093754768685281340671877629036284416728557777841092577225366575889091167301311369250562805597589515743032654341573448680710625952954980317195277311734839842200508264289584678662689383688358872049207708836425689751546406794240261599268687800927383947430728074736402868769250560208480675817847269577415187172631027446948538281058828390139474136016703014386798214324002027403291912369335150583860894613955884561804873102949315642784058144473175984285381747729557287869323189819161527804567282158332522263993246670114447263160650804613770693072394343050737973275231816960540911317244330071091983471974841347488221400260229718008681720308118079623898701591634321315203476695181162336924265179676579559435500809499175831045684975899026875972474365501107493004138344844207662034960105013430773364455762450793032658928294730208666658804514961932402110856278012919517832075753288274395748569652215271667287096355407343554964093830068882968154297534605892054804643135795278792946332381683693329381777233964528569473761384138547894212199658800231157595420548521416076358008398366217305378336302582851487363800712700963946146592621159270316402443886326590822781996951880305444265735702132017493971974332978522182391812909681397454376576604565830869269049923996820025317184873458559202477166555926823629346629376088158808808393211103874155539645950024933281155309492718606477144919236856324628744929380475110253826149402415383116746512537075093677619613303143550190524480719319324187754474578432153336917877575010539356617399524211632247421110739544373265928135474345320854978602968480826316614015677567829338688134435333783208217724345042777597928100776494246351929334124111906965161524211660835155247497847926916714131608868188459808777212908704485284889812333350924670754313086266742093561388445121624795565461440296405821622671749922182332226926099392319202050968987213266974663045416506324341636046495974835395185089419514385408800879588391876831761389674302164499228881758208500683505348795177708289607337234694996551923420510689550595226372661254717315439579938241725556810452721499394501050771948933135368513162753401825375965918373751674578368879741318476118033714141957440451515832457780706895925243871786380020737971033985683029819485257509996150246199893827797303177609532602842392099679393347005213625336736391783271937516666145582721337666473890341240456489398175195699875030161304910702233501229499851385517400481898657653375198250955643597912055335264802842766504745451707627742966972624858472980284021030123195038466386483255589617873319258197371232594547614604045522147934902220904467363194919443742705084572957395264508873050509873857506340132329192803127002144766453897204394096241171958182422597002362818393463002579854753028417495133209075069453544288780482372256382753440563118392699810286000927438448484358425239256684951782999090166993962591277636459074082732722717710894364732477531845068742311405518461850612154802617113159690798286297935840021177760338947514342990927565811836743417429230069601418179221667706432098550108863339250460092355788580357787937791486437251663264951741715872382179587768443720815691307115483125654309219492782380709557802434661141052112675533408227613166051946553331556136576756367079126624422944973706902333076290300861364652066523698329515455447121517581400949922499885381300829957256344313673925567637194380455451133663639782585323633373228687732009375744495799190597126267655887884420758834238985197060443002271886972074148555689974249498682788936503909015824741885224574233682502656261594460883547478315278806481259870076524651370096098695870963692585766720051566697444530071962908934914865650569671947095233233030350141150556822725373462630307271085506545331679626041914484769050019698924539899664826630799551635467843199531881591274537504011078355132625191387168494930062642475734519617451769346619300763676610021078483646468884789855096194196798085742754855157967285683648981624615512066551639252367062644856606704188035669900383910959645617309935125337939352646951681970770782504316564020348219474517284249761483168660951764156717772131805806154107101403372622429749143445705004508808444821331507609206712781126294517750739977675969846893725523723632974352010663848858279221404640532592045890892843977159970557034842934095512898127390173709187740307984012749508754144118828035985055548046059660938771569885917030757773069572772654601323487435986218537433606946861180480322667329360010144436580241224849705344827763277033180724113911363071983608932204208034864533822103112054052760039385548601916155165833107429046794076207203284790888881348332949620636012883056332140424983959409680424373013347717138800190734090138071796361528951786598086792325520268567134426723534256466785229860453992828519712054642500969040408554070356070290480791884265769351476782548374046334928130240030361728040920767102589461566343031309348183566729135523051461226675498254403872005178785522803679002641004252342302837110675648797232718075140543825531227530940818416380530320482965962578590807681455438869200722368005995812337055584707934920655512259457965986450466129797203498209730455535001033575857755824337359069495874287924823129370351042846660078058790885077506727672980778075301906089292679563890531364453663551512050872204527674388510266203505704829858147832225245028970446912964329440232695436864462830312435787524192616933496783943762093329582734119739735593996403896733122977046407678719912219098403232213516738950995041419485893267093830977865335737835487221777857169928612617025119653781728550006347397773898597661498958954078484345193435843587012848188332234409225716785040850400523391827357765696924682467341034692385996983422145329281063927265844907132101170012381253670678949421208112229705748102014577158046061540279063823322749249939363717429372642725447316390635434362603377417906434082873008089088759127539209378174704594272178278128057843532313899616282904903245913552801160289881391466513458650824667194962639531047578142030516991713507696507221947204096482768449767109633999816662782665282028315999947425462240770553281856262565062681262913049096594413644052299463920103241201029201694849723587578276208095794180507736972087157990693852125516360147662892334445369805112476353399960738475886639340687348147623103056872295510520546348210830379549953301008001920147301695647653756077861990504460957932492159090535929079874054767160685425311328848888873494567566858971704004983925237066530272706654653448270124124165680698895803490417599564379484572456535473403689302837794286199640957308923150845408577396533348265918871062371966899850344194565751193966177510493633303974214587060396731749698809098356662701690391814005553366091121094999210461638357070875817783079489295883109198129592931197435336446343167967441116662838150009883105154150290319317759159838572994178801881880762227806210263058309348740317760734863305262286783327893166786457443761923240916388612468478094887009919378130717847733846675466280569768504405637295953380481967095686114559452092041059500849095780915419075437828830988730449645997625552374562435422252279881700000301920357094133100057704052598855257357119632539245068539382457652851088835759781411426320112556959631747147974988278136009235953297491404901476379658038338683592892602300033038167228285847528672831732673175767738043745474235831368904874694207972923693369494573080998825654072903530929077999641490610042036338895918097643576810536213567835079338487607150195680023591193679497785108251338947642181100876491559620575968344405992088027423110552527734326696317007733844084529488122411171123677631642810605499826835965295211552281782484654303615163366055587674506420602269332502995184928982162424000813915783967777889656176695143466456417703940339824742096829700921162381576574912498003406871467153674424061153305530968268534083273307131640161853930295285403628265034290976426711858746173456796434596018171709239842840937080525841496410254939908825826529623664183803292273726286372078382260180449488656942251033958210029308102854183205791156371719682283528778628496336981969113699201140514379612778387719348125361424565435068008588846406486559555899004815802991470823450353128288238552776737265286397567120048682293939335299732644002377875794402626011599079353000859059129297207439872593070443752801742001984527860669537615406800780407364473870642467980500972113919708898529516416952225672568479482430301884332603318521714038224503836996584767215893344972094425431577552397269740356304031751979869699174435553790208138721905799490967286492767747186558896462643021764760204948500632848604507873452222248212756249638357741926476043887021591140079039038197677168232218909562126377834445682656323413460364665281764462703859422664285905409976416001366377280237277754006005798740943407184411467332878698547205131379689601032619404558893856729806151761120141980458533590585235024401613595682084097809977133240362420329917059783994334494406952822874262384258591224890668817541530066413490375231345514258187471698728635356579890468846715150026758316099746886066442176569825264881699453919553607448287802723569669695805793444472294397343227209145868213311175694656483704264111260055327746100828029171177609935039240345528151315524701060181783829729721680550023905037861766937869371378579550065784109174557189897227917466679781271103796920733468566800247218863380951042362889793797876610132693772124423725842893237810831424951739618293989637677643033507996964005230758693537665593245440600664284609354400326674972051778419799054039157056592201746677641281833343008300265646984917225355908585752631480418213818883813039185019153754827197582008625558821319210572590956005754876311634053932770596801200476208969242028084055149990262166201857457388810318005839271957634297152817956054412502474676395686348660062597383732695737162229525440309721093952955642484765090607252058315301717293730023538994302510337439036757054223245188022809836507795814787830645548403327941608629495300657915107487934305468488252388718601669053333549838920521011897862042699353421972332518849997300690146568018089110054023712882622294520534052151000999840682501462801580920707472049789221245727792209018324223166512056752306350569928596652283666000253940254309958772087207079544409068816978618911080253184505984062288705326542116069274781463600165401718078543727055665436824372014660661220101093327782614592802531528285201081752605636781176238418051792039972282415308675524436491799174224711150611987380855241048172465010452914423615483604897538602084980202144649773393498209370273204398678699723883514844617928812188697276902994750735305408649420538764211812685400971954279893971410151188169697147539702403843457027800544967051724492684327425476406521306860834130737366283689864766658029923191259890860939599801629228769666314498931864336843283774103601452833777299666561286930654914072343730597593284980763146986894979989254726993607333363945613729105575253207962039303430243968986354300825943332674879841277988801201642941225160756895182583885934884839532732018680598730512806064120098134650962112187644487199282831335486626541958103936093423421968317441968166035721097815870669419166722131379390026898047440058072050752824744130429259565390280218468677276498014612424101604290637434722960527269413878472726352763338031496251593454891905345994076920071865509917381719821844572366048785979491196564719732404445093410733775490880230862859527935772799056236996453302448102707282199709569268280998145896459472685264152204233854536884574782546794268295606046816952988756595812865497794352408719669111310007819278847365802222782938583982399026864113079783945072167313593880912450187879672663648819442099506822220727984600131536547083304260930575916607649308223136779534121863887620992787003637033741411067480060770270448701087223251443229142930044041328050339305199315554633456843607104715960173001761093819561124399999256531272978046377555667134097940984770013635092620333850406712782545362459398638428794116985236814678029861329855046662557575338516602729998568963987023451156240059984583212739732314411030955869720645142354385709910147902470814895962191449965077023773156144530776366735533652500445269988460102309645279785616925859303623707288492085704284443280527842366927364239567564422090823600832001285972785771159506991776079186118447216606595185320885426704227175142578811413395487240862162557080826377772320843427561460437399209216034364178230524791465264627780749063015610126928705321649212518134580019341035898935277638584838760911881382758788593998237868622473990042093976768370703106078048140271998761556932971625606197261853928735104940416164189433459023343339664067393475674071776733405644582451018596175445071398359263761656233139074046622396498687976861462058431072365764486558509464742888345419659921940285957650579742848556994549978705855726680029292489988749623655800716832817613223426749191617756421593423146450821825371081311428664980404692459864011862684061236488504247074315987726726034840952643140442398951915703462550270317555774651066832953011389271295168001301385867936014757004980815388901430158141473059527557604807374201384823372287895606381411106203105899420528755494637905313951367058061906099781553891028908997206091518248579969145114109038956371534046089829771557463141811804923139794193917810542923012985709615205112741927564414972292851391329535805793491125390812323518362997078613828083423452061901459449064442644609176959259126221196768307837293070458875314081485226199237979506703846767109046176731185319957497177439091284629082330120658595937725653384299854323129738763423056850285207687729683194770023546947029481193391080734655697880816423642972944718331872488808627194422823733915318727378017585872762436666484117307269658934112826666333097164595961533759814592418466844729444366823202121439239267119432247843596579450245961018215233416515532352871315817915062916072812963254161295675526427527140631961180643417981852520203624152821705314268262249412315947275822808128875493758364975571898278625918103857871852629365052053167592165009545184590186072286024956739774885515576276670712940302701778517114298137556726493782687052422913955088113687874354744927610881902820989295753842313001074787306969426425532606485095325925252063656334872117468002778016886978285332506500808327249629917687430398246470481241730728522373471260093050339080402742272749637894061999483883228468114940368945323026419339758977498762958558120965931693396671094240862964777758489791864126672733460024145031090524591260887059736148933310723773954377847578811544705007911379033090042042193628754472777486711075104988507860590830918665696891330583021946205534696768906024725623001409084748077790321195554549855039748285871229218116526073734773748109690749827752916082242333147874393192012379809410665348971776263886054308443552139209179591133966211608209132996929864101018000679006942317206916640318236440457737008652224718503120601784600898286489550991871454374806938349329534774746440556973705971425168223933646175142832575479943060089289476437772011893027906809337392061844662667466821287982510028998167404811531903487161326977923463707215121108243403708915158441344157697692282036129308746007648488314385370035739373764346717117078551130563717836382773955157041616296368361900301006951796578649894495030202657034129588791747912089584221893224300462662102520341806075628392995276551179047764503999471593402774646336506341441630875785771590168527856690304703590920269708450290370460953892880266620045442715375269182982872384926756140932822948211472290553676937675500872002037356205926299157472326929513663530343112556051002938359226440872457309513034113612309665946882667378923333802559519730751076289087326570013000625288364947142812452997181666342288912349216925648833266326804737374169870923226764457476098532799519009796671897702435973567779225403831256268337871287663544522873298475721865677186894763329958062059308572867289095826421926759704874671032839674466003290339969611904768324706203613936416420571399302083649034456660088787748927026076518545951690674562140004386749407018769302519569576109965032909641325886221656186332911785474770924161355870685324397596298702308735040363804623321148431784358267070645173605107162220824201261340774086137681807134806809632732720709530281181903051162587630769412308599212481780380681372530495488782630497069400579637121711499156779394708336247795228412900973509974986293762807580060345992843067721174582186889412766330922202446874434155679497504629686255780979367443800045327329812927831433215469868217341079178769839425273592375417899106916993704203298100811776007078786884550033080128658829341995289995544098750873919751300027652794217797849803527100158068542393923223704706667663765599390721185392102271980803395461820796611000407603371968441129307473594765656737762556031995135462144543783057484443208804606664839419711030986469087161595666345103460254367759269656325020157125293201815662994187670905505735607880033291762711621050242237756451022837507899314954894011083562005771539977466834458452006651089009529982273028127113119067943169163806934378531876798346369942758495749139507566496836777149062992695061966104980196491788033221619906806149516479475771123392298194849006554924807799183092405877660471879284983157807109169573455042465730936743543065899096129140310696661564437626293297889238273808801814603525626173712348649342501611941090033227205020466253750990684003315694041366714209209531208668141843591321014680073488541126047254581497641906165565719996079310303210970643011794828057763585591842961675785364538392731591964258435972239173766954726584643524173414778789695050646063138780092747947638688038190309044171978900074472975823463504316315504440427097743528713679298797391610398405961340517278384076945952300008336771923912384609206632834964332159422950506236033471415296486694854441783317879121028414235511759279227629415479851482577329116806160143411473004208706245094169460627242234154001602818845633278220616565285253415083121232220056821533871331800668674201832092904868525187430013577029238342245635217549843922274836941585030712132588062453977039567198836985719941268976453643825914998025232426643503730494620565712029624244286545475935694617137224764947508245588071804736725454060459589253805554562839394531360384912364246929596092023942772445423443173568188612694261156653599544023555788676819082792019606923327353716637805031301475144469396436545155484467608828615785927899369895758408282823176001866524157954991703298121703907737093188255634404916948808584951719246600617587842422260799217316984826749248464243465109460367342344901734737256492486372764753782860832417087804356638767233909631888787704165345539131057269808542069070768343214091195259230697110130496761421408289488826495357542714207133051669352249971051183011789199383560788343585357966977729525497035341121166850669372290814021175310056318560310006541379211804701635542216882664259376540026006351369450769027012241360753867767435791108838052815921196075262771188510041062674414946810381937572975142774935495820509868318629216986167251539553412797901161250244718107720558244838422567786753056090400221346239299914577150617705438113530117319678365838881084072236593953683542234915514212421456085204184692049638103858739381934784889126522683073673360135794194311574321962048740368799070357709519837556620917514977687001438342270482187153964364217894477336578654921871439140958782140509946847646074033101557692767490620535450671880960905317285278724509715572299512345648183795707498664345445029285670364350992890658970660743718482601953125018987703819269747485372722125683952225758771888634127394118620782072716023701658539973197538053946186627126315485558330383407175279907618612378386813247251329837746393061561839319922525926062462095767822343699163677102622113619371034863073019294816588962605817747494680027691816062069853339639862261725819121661358469477779911678524010724527451711710633041772598620624303714102325364737637000614563698597413724157320846008613044652283836954123634076350583533727996156798291084564703376982682692387976921059234410915915562579745912892888801168106170487625002408053886590607933325608800703267192001028610091498666307025817356061885940636945404897894947208791468078265123060560066680275641055588231211121017334775943293232545713504318878025084668333323973177646134756971664344369642317747075846711384938124451797041435617609358575888415511982883749890109238278313922303792932461558071812017243054852653662307441657684421732261795050945991412412388732490086196476008961261697701562346578344707320893686661676122796364915541658396740379880239532828044339075815943082967963810710457145058808884061269715115812145847274570678942457000792296594935368041482213164280599131417653330699635727852052123599530573836385251003803943531615779126114358951797992093649966989862487136839516048281686363569637207248397790707666562902763628128743726426875048212833164894792305539742251140007885689758709057845138678929828743742421035931738953135693184276651474904103411266268160823144677123323430941595841975295032200511614523026125715383273960467553272308487502916505594284697718637459527929309314312460414757421092280493456761621615593479159039540663983231252258389089759994592787856932252971711217414963423406498838509528575258065286009080938384297631716492463557121437926255390032606330469762047978361421180063205844772205567622084350665034775484597655553546767490600472768987230227526442330433685037037853771703408494409676958110517858299116198117287955097975972064320717917477568873061936008225474277661067459593116424237795491138041215736499381944004670896822950187903184451430440273407109355646991363813087133286298230425205232559671046479872750119489495987486955641002676760607952498513315753532923649418255827901972813863618173638485254729710655305375330987332371001641636841742013397456220329158940157323846524455076396607474875034110858256486857300458534952990041285432390978666059436115314634883553505169347421054696848121295281116856250351239684665159944025758208595704389539458747439521363722042906550575785551578097828567101265473040630204058059163486602653412475330340300329457171072656014236756136538097657476605522553520343818332819836522842431109371232332498986505336794129253051342628528157190349334012869798608875107669024268062957191658473515428864236023266851511093923531323950708105411774744954153030243096906753355084824905938067800316861712822645403081920393167346294796775637914689886415914615460547598960731393462029031515489039782017781509103941594154917411929105070113018347696961431449837978648746889797506030851506704883884920085305165263389600690617093683434715043081002614612378531278196505564050063331158527018495191150657867322406268514570713110377056600837283284067794357309737963736304343163447968335736340423656818692912672732267767562641294850073626676235409369891521795047704619841134786692616745329579821502408242803928670930304853410127306674925683876950214544159308991293433991466371202613232397928256543695572300999533974419775480004352705936438033819872465414662028916839055296153764866130989903053032490028280024175416350924753063806455334054053686129433041705690083776020857298917209649086442289662938268306816224786614511858359092605292577091893148149117379456328226923855384397854486545409403552160092542309795176647149215416913669699680540714379170347368721510697510260862075299313670687655669992854093521764385713703803089707183277239709632400610962119128425687800956512653203910099894426390744180566945410558006427312011523542570258998537962271138686979970548380395770019137546972250465430795269631574455696207383704940856691652729932724918180601546717751165712943396183060476257645627083911365307335833200130330764818824508823626735942825530698084705363359321880101564666427585540870500876182961284290858578533463962867006795117178293483826193518824834383520185944904479528496785399858466183843203421172916561501108194781190132863348683455540777134125587608205897258385018328576485064742812354726733864433197056595361382609878795739884994974739029966877115196386300645369241864403295686908641267704899748073219645042250341690881863064781800363220860065476109623846590961166170996057235807342361696382507227977245802273420174282982007642023786565147501682865913733399894319152181773602867098525391631598679032673343626228899108230391733753296830416637743958358829804479818005856575178844707946040972068698922478671380126789311979713000170484078541166706431279310230173716711932105605197885917211150279533654667419827122418815706810796578747602808456909561844508225717653143479873232003910453550233387501225691288309833571114482677772061232595947648574395252582951687383103676053686961236987224184493069851399485387224155563685751832352457039222529556797365395148351608506457206460334251672912452079014559573852638166302667153203061664900886208087452703121559835053347702129873378656783279188585829315424767264430343578560050981883451543847724479149519539123462104237985537056474860155539618792962245038868706399038118143662899911370112474868138502914228725744256541907925978125784718934570533633869169149069891747753045529473904516439978932469221366300657325643991258981866708287578551298714799836892564673652583908579755614062564433675093056020780730606741590665558652721907352247143469984428020933519487855243682119160368195768300067247849174527065937800728655002435170355411456294230081779142494283546429511914304963820211919879037688564337198159969692879003845460727896157679020463149523849689358993531348366368285454792869813957584255303097346426407922959533277446966910392078055589699003587206811490574953498621860067376730408121886778646280310071872727593129735427194926245923096226255644484797509810710814240912200741036044331842861791708256932791257353948899236101330135908886461077920877152177277739962494382943280932294705207427608839741227010610148229416432372100801127677842894190751510554576339285610050456943453469598296462643208051041457034173092991650993592385825711866039445894352964849597888608217272660593724314205844329435223284378453563117528615122598436740027710260355403243793018735633603548646364548783189461084367352973895242916729296630668441105538975703752881688914856266903976305124750963997434071291561628959078455180922368154173947651096734829222925276099751694525334569368984596118744642376948141095089326673752882424331026277834580732784569654375525344744740589897910147364241472979823496020499602098694273552699983098890550921758300756459785927593942386958471888861735750233394532900789308795510880632744287164152894447898426292416490687419581161958938821243717592806478732967596060151282178349790390955318362473881905032157646811891123350222049530681437106607602392454044754668568797220722687321137425578491285704348304025987951524901956211149186109449069628851122846634402104710084824083028376794301578408659104495067507320076170888633379365480586395394242502911407864095822462894506328090819557998081783641451044485432432877303750768270705026745676396222789372155401463423275514068463825873032001567142101733096066901527829582478627002909467699309131339174603850489480027204649819119142849127086405613579388706128663554773432378333327653988441959778330040299961021334258118657579787343045032526999924727361013795470462252936820478068825792730268670178411853630212526083328927284166074232986729185933759445577020175996281378648245447423121235760717592570521976668449060604483829067457850373666200792474285233539289523973972905305152359705957094045124414958866031163623083640681400235272867391354119286580689038448600166722147383506277154452450158771566194465259642235269110089442359053577368266356506077259334904006926586658282353170473889030093536445532098405072339614446526619370307612075612167576206913674208774462657495679257517304540504362566625371867658944742016570105241214827087927034175153306549433061950623092338462725016444908446569059858258840647451725088570297390585198708692274146776918796677526425774675310716598487086855783152690337350468738964677963874176300688703237930495693125213677825695896217420760107825694568721226003418715916520213286149930433850585301406771200901860056229306881495260942241696149911674326855802289691640066018125129790053697592331802950006973766133211518212731965435979903476330979654712420531699911124966383197590076428119371752179775472706214265678547842861744580808398008271036028200183048904830928790483415921752522400328059180844068847247215763129940835572573445094004145997152930286488696568851118608392290875319967873413657657337665385559261554701333854397333583821499501287749875796500675287068948429581720333040378460421083169365922593670666182362003091574634937017268057999102220430478822828049734340392967720181494873794704935868795222392900971705936095494640058542468222554007362464559204259189930470492046506435606822201612514052497626490976526026355744082094486108427795581333633384664824310395589027085311336011534622494500713577074601007109706070026036079429525329762942268553492530717610482193193067782611195318215063489807928286535868256064661506898820627031243472576700968459609633622086867539068456606736794961296825526664664636619778909169062934666524131667177233906892210529750407913759310755754900508108021430671730259455674677835349718653179964274242400869328625485403518978655217427049658198514558999468646643299333318903980728953389876222588934599851259775125540395015515472711043158853308377144334918737016764212879444083397115652057908752865425253507277246204883124401351257119026669540750591278247840532766420394574942182328521218277931467900389661314209783716925458875876355156131349402908485513517748182516202160704142823149948375737292603552528001499143853103673169805882569468643513714106748441985834934239253765017485807527892111434036828221335779698488635316178042743591720571049821465931778315589062024486006993875950712644095073513495998273039435820081950765543305003825719854885605051535339258261082112710556864547080936538367860883849631078235212870715425543424807807329982874549226357319860140270920660150483115918004265590217803450747520259185621176183481815657795863136143083809159672125278009403562514699959954079236952149805900758655238641064603607411310826666737682199369307090180703658537970068523938550717205907312892426725784631832342628863953369323915695258619991777862187796168185732671014902676207347561880776618120554956317298118527819928159637236742120818365702070218339281459171535254036493148529647290252480471770390826474609473233048326785282739082919351466247684736469885170232969008866141169654378247114291014423174327897959907457302507845470482703531947591195359331879103283318233765976800400327421243770455412165531325766416345615809742814453231600417974482621538370465298597386531732832215477468478316655923165065770118397768382941688598922373460885271638168955770488719387391058923217379617739157860688475383101571593602369641319492936210403928418910372164011683275446385509074061822054379432599183891680712832857838658015635379476534418253387339741824975185331082182515027709499593512069083137323466181894572324591193544252905463341432967136775532940429474772820017267664410448143725036563125530281047606913618097687702369535658735378506761637511310844778659652874308912130497200408241232954906705075853518898324231753956402962831584113970792312929915050771840040296773525258740421284843976757246765259704496774741592474656690315914857231770368595596443731904301654635409546419061444329610209662684716770894178239314117160254412893530414053159364910738443252799782295906096475771270411343034182542542891558268663405937921999105937926472340087368831874168502616634861920258476709778264570554640996886456396199752773135892173430154797868548898034012716597083765130714049413358644834605553548628976062709083726489921579379443847033131085379307225975961930753725685615242786924350892458123380226818290774278576989108644052242746542344509491656811477717533479349848966406182749171725360966315956795186515364594562551950216255699666417493378469669365210350004645718163592642405513314816359667592010025612406173967384676542139569775640024427357410109163370867103798259779281713879205434871263984374463002275855089077718897894865282120139387566105246572500240334021739168886406014853161065209778357183917384071472506991224974305033549404771745242328111309657753150347351595365041719967394313259324147648404315316310409824058578688200999649298153646917485858430119124164867874273605970119516304175891137804604641029304666985533250639685478215090868782833963989671416027189198192874044424557970079183348832989057336579510856970144844169242310039344048599085646280511450278497718749441070003397685979917247404053884592980018361057110535696693342906621841837770571768392137001096025368618864886059422976290060892246831590460581151754989475539460258529344894512914919666253987016145575524666443654496596260913932445942061407732120006215683598567593361539808533889806137901029886856954371476193904506283523046981710430903155254301313529236919368458301810401724214488802467730131713552092585577515622510270879887152948788938002338571389685602851414808212318130127750243643204676048857501545244685230804902920104149853294786034349445333637804963624165521936062119524962884937447009098034912279234982706636685831907555814275001136903056673460567455791193257589954928340927888879244802570611212195624775606084599940909348985510597617681689830582623066354658171776645012765453235954970979361389335760342178978298252168554810934364445483406325738111959679353637229010394340251251308216113575972892198730439157216049479433822809099182430827104375731423329163677566621796925914753091557039881427056345147959610902162356321992284374704837510648173727028827274552672356931909096850347373734400308707493547758582179097316564967808572230071572987082014910987712862533761378064787558859880528352313005354915199003059129824196938676681828160031606485503437077549455249199568747672858835313705846813601732453161626631836165369052816750046278422418443888684298304238823213408851437084517532841837527241845662885290480781015707655755335836086266769430629628900526756870519272477885877615440515921380302179033178387582464292759801652359510661463474846611006501333777453807116480996132542089328651177858272595830241048380886826739387833494908599290941060479692520669210931730424321931212218473430860443045884439593992754268026053010555972262519173935330336389636450548326691536538436176107841727871485503853609988774880349817700220848362023858081442188916304553854345929001390304675658535243316994883021743605677786837222172446036644473450823663644414352901028394520211842441224257776631913887435140798398057666361649505695476650589656779425185892025212659688830189182335801557627327776845531596022423906014533783558099591600287952944748742201801962067090243537946970039339564234637073216091533262045933968742204070782127708162061679723053898200218658483443813076524749052414536153939941923706131742144906750583545658616819416363087335618992644719213797204525295740910729392054912777958417396529382078200914041582627046001042547085115538151109209145774936168353823164650516982461701125586605840084308577021515649326047309344017755450013153493646591658561312194306794231992216264009109105797634570439414134241660831585427103301232122443615388348050592002605332289525491945049522729217442557487888437471246138892762605498105946427674012449893367509147936136205449828757828235564398581008284319134296994226617195442009108899906999679939646736917814402417047061766806531050192735095404371690276437103427625611180204152961689528791886877963669857424638814149475475462036058311190888401884652519698963465476509380625100665525586350498445187813111266430814613933217680987929185133960399713984054748794730483120917320500120211327782724497500426071981971247151337535849506025600582136354687774499866257648928617365365822806158499739516674315825737221106925214065708302774865949174277453207503983129742069343338301195973643423104045050656767897542592900518035863814773422194887055323242079599052171647173079885499921449021832015659845423351108070880638836034205778475753105784076477931907218080475935005239741700356663550242692427730192518743074569671466735855997972939581407372258840458593631063715406395362763089734787862745677393438048542547653208214638558930880124247091762224114698293436159696482403545926951013700354110975696541029981084578460319725243840158286239535175174342883705344574453521799228153681693324674065320583418799041975348285504121427349354374468280083178746704662920336257312993639848133845283607377886269546596671437681218974685531614482204479363889122871030909365677892908179985618286902852781810718868120029593430209547730242859086962309631612430313614022257966191990691532920119007969182905920267347414190696545633888183530944987242465432514077444387724935584521337990018915193470242573076281109193164499984657161560487585185549761713995818637708573672870057769698590482443432288494880269881911041845212664874740627412330730457025253626802246784107475080345365432469888257133643997513574497721411420181747941498172820856587428289008657799225810701781631690197049831139291465443603898077985479047818080229214328442209773887498295000277120950903480457616012046213593203746273440339943774464775610636485122983987969505413102312576922147404236356812024572329235288292498170683641323615714940710645328991367431836477488136513750831785892644770714197894019027516317572964821188064944082980994914667558953892646988754569417288146978874635905611975684187894231555273374150806592387878805284555976067732425902107689821584064043740419056905799656048548453045491255406271506907558577984893789708498695413369555009377779977019505806859861479481950861661645525060275814292011619217210976690341521079868678679717959154157830748382111923003525668325635990641509860798447312238684493915054516948113670212511383815053107219880922517404793998722437165683827060504066588852334652570173771126612909442420700803597274044887984420688358900912632077804894887642629309342610771368146399290455677291712614342171149464145682784760497626289608382716458505790531838539031376850063416269574125644039712290830939627297183752917833323530768293841945311477424950994839632778928633930942311459463249701404688260767623800320696962444350914154140177974904273436932118824377323521514318721287679007783115621049540700703355387830491180476417921812835934342577210190597898220683883821788883276013706599199768140669807985448854996131305410407580456236576704922080899292664773631041926842049018848065013200670390977028734028068752643898973315292359897321647178073894608693260991556021155991245774936629582397636163094154617212616085604129690554737992678885807921365070839495385488929400507768404643182193234865072778530857955532464941001386508844913581322255542185625540677262681399229971207934038715234796275267814108989077789960181827006828473771947132121313016182586315513914603081208791731764109202203728853580949773818243324167979594646881889211459926576607528844581330076147876309679655412383589056669096982045083463558433295029493310051234775189177951646781254124640283496172802583134964287252777854280128707123921495018753885748612264341549821549448622199333919707397932687253420829669316239422240240582026716014978344270955465019717835472924611940761072789480805479918638127628799376578100371669346992901387667883319174344814938770957368710559113563973024981765488867960260496474599642309539638871821893854304798713349217081285037751132477995106763825226839063321707496458631368594934929763177815273132664968835690951879818204854257742762236329279420168980059528965147683878502023932046899894341830679198189532150266867095343417588383731667608603637842153035669109864783829856939250946952186274086135775411051190920507314441135603838148631256293794752810718307122240767577353460797387452065422488149187698392201523404636866957051364462780546834007956430588147913785376558120584792910211211092432095493830450013446012754733529282421912522018640875672977943917721190177593852891027988592094079496832456102724446294805857348784181798778304388001655319323439079166560728998194621167221810254062695409460872014454748393788990163668009214225849268229134813760051487355421884769600703130109431855828891891258464088839863835669441772109247114283884655631537144808083422375439711331240497437369193607827784792216752034559332490790750874078769654147496262198611031507209713896940966028861448439568263847316033751853078060864711840253813843653320930160106616475704389301770166750847648324794223794138073023479140533953153118204595726336172171681446844989204989975328129335117742774690197835728815768401221582633114782635491087797361316497251194733319651696355615872605699909282711127830053430129126000029414595455933094003465129579091803979587053171410684356765748682693000564368520929577682666628402986885058148054572629338180417822956008624458919441445319394570958565324734075604534825117506259405390213240987172027963356548792347082162256043343484395273631703313987245988561586114592199048352891028780690981335117584095661365809060571927261508074185626339877162259843618039445372624185470957282750789387919299994038505079814321118986440191467039095922455089425804863064295836795401474682810402309416687668980270869395571771613336305035753697904190066870429309225438602778760587945789504125715079555341002542019529406251006173776418833422198745239537343711464747827712754065259907523008411177013735133884639646484405651300709230621522347213911953682375407272783598004174446512940125189729661163528968054012544921173570556404443098364096813660435881125621837220629488949919360235584666328419789122570200714721642808076744196246570839841019249016079313988706052058623966943302494275179190968061647837369739599588808138683338278443727524407667910361289819679071895125206191303305774459333038517890863735296085362035777791790388374032482081329723919036490567483442839610165881133867474767209406470662715893734121829566206546309066560900078650609860853798418266040158088305122225181280946733971192023154625821668850585310301342274952137347336390274551986055402103954767689761875770411679426000066611000186192591667396993387190321281307320163170107171863889747163495209502870750828135177458702226569609864881381832711828905894381611482360062672010103698086718069193243609171776055730204813949039149525404350366582550062330934226022339559240112961484664065513924180108522771501877625335172234180608793057634609867639367534489891567845933575679422167631311542352118924928532217093819692152248438449816500075368259844001804343058032756808329794559831942717222916182752278626224998711353799503795796845760419248942612214264547481244286432887495033484305902799154460072185215104980714406147004775021987727407938303792646248687762843297286426693100326957208125912192252213147595598562352997456631111541980301799175025456352428706227457882129623912535425233303159157127312369503952244548672790523235825557398739863453162359945348692060211227576222668031629597262828650327095382821934944484573956711104606322106246701933111624690204961600912153987614114708098595031605474452837831458018371429035787582299449913663688255893156358809286947240084556364511585916857075032297049605936728780687252289768400561429830802217264620016630325355225699370716169886542716914052625718784855322197774469696077298921319346295277304433453602062968530823132646295699372003183346188741982947146980660658160339771887524090818875030002473653422400724373178289601254387639296935297260373511781345229585442704860493178398954179351222921598194741163587548759762246286196208786372246382295443541360108744751407734649738161455970291359803118968257513816892706601743188776433237443769753053634452644959212144306807022778214620675511747905321989280583388572598595052872392570574681495832571158356619757458372067590437911604333934558206486047003095566600127182195153864998189808803925390373774979899758306595570255236593660771917596823378616637040086251426029017273855263939011785629652852436759078833544337263668095238013681503148045701253442992786749237983364674108336553387162413938016172751817852255755408361456261224934225962891664202140053878340331851487460009004165711791032115308013794013857399641088540621291597959660194832518949203829246676225035193084996049764887910719208946440946564915566301808956707522464597979085022442990357544352668179211785907055994662778845445554116143007000405415115136027588522022218340603444998993959232202125542220542522918367754684741269225839557532371335066274993572779651719453468543665221130924009069375274686053790273740432515192175163243702953960859672309910073883174085861130567381445166455792339818020562199725363860008982259191669086312659226407487867125443422270346328895943858734045066932773437563817683312562282559522546128425979606668200491646658812142324578632349525526017784076098925372373102795357497172770715377088052284977142888338832266779566439697956752220714313319953715087448620929668401551265322422417582903669678064568589915295202968586280901332797612622229940334531239401922510745290576822220739547358188283799447691914343043914618592401170084508705610778294712824089389413781902095921385529606156001822148808314844506934098550050778402657284370760484056798231084794067995099544245549760672128825354128996572365751732877787389387968721318087315371689198744128131193465094315481366426638971619473708845987869697578641115712755794691794942412444650804156110185188024976423121097402660358179143167266205646450042816126922252089695917388244123985219031960043162544696495343563691639539787476110874781885840999601775219245683893877685398397989109183839545495330007681319802995251221831798877498360075212451217638478430827291764974654241096537802801436797723219733371627296794772328494126350723081603081727370539404103750303323088201140836355333120012526339120624464773765500466471155733661283336009602338239521129693768378019491911982896844958443199342534140893358426727769091352007464760661446031166371650439840091922906337122499553037151523227129131761100137599726164114072486630533549860475534243451814708833830583481739610483069577620106183506013833767336551472809695571957002532239420544027614578566076753124139468136517189501423606605398415172415626131036817358357837243226882290934933877242426094781257297825219209474855366198401035007466637216566602208122316724737818817359159697436901698017492302335207607215117205024760198175834127893252555500373365927135627501633000210566985590583192299551897456891516705074697026577347982843487099823313144816255937163798741316800946963964826656921360735294260023320653181476745949897763300681151931634390833226487657743129813365195408367883513554099805442187702179593632735261803807321422041219439027112957001254034756409986926862035641869926863557311015542911076216459126885086363599204758833066657865945591372443277536921316937322088979469774584011522703065609091741112774302375954386193086713808270158065500827428046604667372282023311953686815069521629442572701686515750905021951516634811656583214521214738201480816280184895916849252745232878144205688521430251045318288642163771142674978660706994087751786925108792222433636509353536930010019105458539088231515818887237524222458187636267711432346297086335826457530949837243132472744403652451662901448333231731961116652186988551718474304270693280846884139524395007423232156563203046974807175596682336970665294837456909634989971259243508703798703627501383488377484745360759149178795658084645883632673622259343306096543051357502826441439825482688071093364435995045370459181421170782255043737581833369086057272451271913344528344064166224362512510627163055157041346148419195999768365011537640980406318428078758591167879681630846563693505035623734412247960012787826629254255065410488779053416147592784344908292377685370373224446395907817480594908093442734475436456465686734665715781351678778088490219744893294221971463184558415818580049549265543741729986577609956867962330578499708759033832806108297867063371106535510247268014791484103766707132250080660108858166529718810128340308002200701050275063047472707396375223570905858185154407783444504699921938273919299026794180586355846805881355741071306251810744476354310343765619815575585973133620105140998749817259638480523460408877795990009105479172212227668257815166312430245860542693706832890950789040491677094649506117218376282784718402587115782668178425320168072298530004175334546196283586481117957893299732482989877535880633413607879337878617340368666653361092847608635325093000815069868086258515861201556613718678447602475902466021047470372518297341377209354421961539555817559634584102267732784394633202742497743325293728259070063677801790024437656972473630153968533121954439069760367971818321189049019770944568545363310839439781408522512281545174036057580217827729222057282570060634133006695115979414427027692917780914406586163461998539069136695869215985849371278868125147222353121235244562567169980954669120301244483233670949816713260577122172057809467806168531737486356922641993831692957835270361982541496864902458720671453536337229328674279881028470821390525795458430629906834412570584807502368702455809864815689579952279799377570409965663768437291150477840904957223383716977344635109728875199364935067240079600695669855374108469129287262917442073216528910023377079183103279521510175498406856852171971276488918782420868189191132458207905960547852084513488703677746324747280672614282965229693258058940497957602396966728698536602415624040881171723511440662972202167987210150533886568432206745050569194211454286420409486518877736550079731705433573835606441537185723817333783809200907722075379803656433599996364051913342484629566950777788829706966001325518352030491802826898700498895410537392629307330283352957228656495568050767964907868590276992401304111440045148343214516223452818337377783219011516486345768411256240310584453418776135943187152070975390068533277571337688871560555746984903003850813212841240209971651017308121326446670910713471966942257366797788405186226767982101325194677742352405480545592452331668231834075890115810213286435373559366892543028393406107843142918962947248638815060421003143179749161778323655561557523734989811559387642942141654944186537165874906806561089277625865667633561134099169508655487292895012549483316757295052639808171806677815453192724033087276707384931243170465960261746342048768855963114662019655502371322822485230751096181473964916743880910165169167643253831273225523893843113585019553132497045922973312154990716845563931127851012813164331714004025096711168357297614764711498384701152182390484302851785360463512734027486913936968478349195393067314597430526702824450631525163520807015937405075624817523131721183121073598336726375181847766925323542985119802092425963543375217875111753672032078234592569640678012291242346186845230405389950781388264847563592811309678442831376975744895972087139671781015689618370137524859229610662919605448820717557758591804577092794083496135911152279502021924377163855247220151386168764265860265286691425451212997331413046798776440975146405464077042532984291702578153289897914520121668834799989353783836703225206582554358656810257921187377989077735006966949331613610440723459134734334809971994943980077849781372910353149485711555948965673784940500948664063300543624068049013944223746021921615382813029787662599192526857793329841712702101340630509349977513186146331758130074429033309554909036437371271531502413637829014997826985807921637355464086495921093417519358028950801334241627318015168942230364741234570587926467218528977750381838958333965563556836847986652919631022292813295409581733813902802372042653976334821999814057317616140667669918243010397815881941657010186747782657138483689783949405087758137334613015564715656283585069372631761275947167272823149466027119479607906279426985727563491201013932666506603001547810119329086904984039696005154657221031130696574615817108756507948941709193008305524896629817190690923056792650981945141749688695049483846563555521475957827684228838897737091006453744029615274901336575741280370235912757399622143440802996215868972907728843196150765066202646720760904445414376586137639800979261376787641804490537974005999046812370133280036813331301183453296247038231563816878707941997577716354968281729455303150881760974134388361684948757342798886993701661927024610026503826803143884894921261679548887293076068939382045939116840640859768147121919642834300361138143474204728875218770632854296712045483776599189923206407159817645127680663937625524904298285576455087831777962679564873752017359018305067189801522193483536895728815329454996489514839812353595543037273208184328320128490101554110075304020358553451563699009956405774786189009703202902639041240910923050828347497902033658880385017039291981743713084137188956061536169416470730022796473746585376312549087897792227453992347576656807265336436613981116962433809140902937189931790579289369810937983258594570732051615865062708571194594674530544781913330212501705808382150293316461806230457055774305758829126020296141065659575140591325099596619260213341405172253945074026824652148113610577449766541432593180674803445446429462296258616134112193965717889553898916601957895098695964940209804905164429977964173329312367658888081145513387983864695353123873936334269691667397505870884191934897069118788502579581242775331109667989166442872086264875619120761167117304019789133135303442152159383339240582432071912252682301548038468332892518975567793315789480401958810457299529926959442533643886787813117138415788178224806935217298683913842225453200120320590009792893034551049312510976574379850723631440780840375825220061707881970263369895445226758047568325831524793876091479272403789433167826471115582222268926885547815365248190158259314550121569805920848741747135374188645956040859218268562155573550686750986641900473013650312293151737644658671462807284514680981742721148385929811871857194086439148561339605710569447424796165462635063838056368574018859743711379569525364724201936123742781414919958005896961438318646848316765108933082965623511135595329690088947687672506937687890633328585748797084743447687114451257974970121661798906823681504696004997563277312503044246009805358218839580027610568025926419137613627428917575605413554870382880770621654416211278911698148866506011039402682785916717898380342993130608340431362460760976550604459726321592939283839671755134929813938272369051736180038977617580345433288711839444958032312739869218221086119273437596381349892946095056679754313490856603713085723042826810458668100762806329403506707784380655365392330595478942720067851872645214065094932697695596802982440094042733840742347955212069582922423047076710959801324431313973673619381358662410542835435023869501982023395109531520390856793638539437408028480773343304486191826060638723611344399642203342900150109359236360628749346572328368818938782100029241068623998184630162779904438121997548262121716417490036414168762287525106308927263282465599326450919051514274727254542138370235393532636854426959032581294273941519044069704886400182893862483799713002698523161037120824265118696236086288109661397497730687230758865876393055286647572451262480719840249169873643393972050166180134954922456787153153986258165147040775419600047575121210024440658609737480337468870676130191894499131769252907004552296877387033043751411363782306584764149462546801237694465501872064537983132724736707284589548831010498307612359985456849631036254830856395382384701564375784706227456524001785754897094561100002805360369471067002124393586426224546153597038505679557095765048727789308278478487151630429302011318300611558828653223044716497449325014212032639617690348223917226661394806778344702733161207080289147695800035090052964952145640884766349788597723097155768070870387094378063157999625423233039921233643366449514293802732557877507264922395316624215200489254385457615257850635551116138715207247187698516328307212191216208639748141376530082494534946003869047568809699285469310392488530723981649753499350223349768162660008579497759928624691722901416713263929225781883878123044338321164373752645979370848910430507450368004847864445071651795540547495834690329494243958730170536290159648846841981300737551309207026210891050799140389494029384687542576239937958516478784168641269460166980776514977979047180022392344958526761588416757859320725034289737760829153772157216223536957946960122791255992142239355235842422051930233723599477576434748226742145517605590039976429331151159353931644189025390877875079860270860543022495093255983760519210372863828814751114436281096196072522916514382802976951486392100338169794394861427083909411837490777180312837356576095041279194843360569210318007549788299255584283610148074275965937561941852886360816397106676420202615580311065167618827659858780275198402046104487900639584173750823689144224897914996467510125970242731682461587501259727840030910817933165212165228798129617884984077571019728242945923457413415793055438536144604853979116778248679263258280363939993005393502099390537538817219327248868947145096457072272473376418232122365670210496394113260601608948395410807065708479003287476063251614411894236431428292726230459457950504306702128268167582105543670985551367013862404026791473818174220789426189544093255134366086426425064587157619449131895270460800648510872977654395424868862998100228808198753289411049124487134877249204780754051083495344515789153221234746479375158799321000758905109302628408959074415048776584814194266804750319701852603276189052567084977306821278512998677157062389224762834566287440287587062347881473064976558740541434401299463956272195779383426339884126939739970454355458084505977910268833160709120052338958302632724349067806160882369606492498881285439386661782668791775693513712889758589367321473803685092927461328858971870610783553946822034499279427604827174948831816946465892603462634763070023515088664354836088521791209035919841857971403911095089407841398510937678989613138455199555956915370277779814461961179347709779057250954984430014586366017563513566164888882211648700476989385578145733378594993592343498049682262763714634734220658094405543647676208660104433698265236730893788478417605638338821055595910561695422872407164993328341130451896426815794377026834479334091151091403314852568923773123167103415536678198755633536508512698318225266958729467754747025390714276969137186888271821172715782223806081387832623658608339295911161394776961601823714813417171418359679120749188420855983354643985038866395110485188805928711528839133210048986779773208099943555509950367092088339295915268022640524273975562983832134657583765271387286731525010355628530441184211411747518163625098494003305176057064518447455924116304547968570372587742057198790071422931140867167980139579166023828155853625823610076103815904385390840556464719838967805824040784091774519960570987100903157419613836707226500117776636215997686027349629447032986167474781002915468499943685729484523486667966380917726159465582920993705882199584821348213336911734020504049659816503213086006648258143850592689439134377000598879675858965696768937889676424608238922291957268829380429692135039579114342039322003703351032199104177996830010574981368205099379603817225693349945732449760676376445182278110568866024650073857888783685606859937700392633570890051487439632998748276892945737292679740406547501216607295165764452241497882390058476713364516249791223453927635375769285517094376189422650173590309682148512876899026341965935320265951415544107953965397246802534889520622809760111538308552035205804668899919832216852114015182230400579348763910974238396550535448027604373590642911850982248482683529039741735614314298211385246235536351660757057603932709851863055199650589597832201898513013566858879538706382740676576519288707413431306205635375436576850465167183753692599290457591065346670088090403036082680985319897439723111851939814316601245450997262707631075320534722621198012690019675587435316624951212634483262861008444191764598416017290520273551934578264955465146402685471987441298831871734329690421915251701689807611639010513542116516735164336559111065949005600229395256256491134335583641390389947887550027510961158180687168649886137137790871849763429989874827675480171781472420270657442539930233733853346352267661924418357420828335725424453184078115538772725136367864822032582542666837791515858617177531226459930055663279137496341789789171535042086664610314246173071898732683443479446947163408587437022142457885510308569459265038124722707720180774165154088114242075540781200182626703935152931953438613880701104206493237887493588207431839515676438905312779852762722960433244923924227326135492439580738582447269058693068423266536832745797510435573428969929675517601973371731631866494803964168732855718309242668418493987173965593643105794001404362283840301428102225463905816909050202008593627841454603347149413465125084285937158728645456369123552366346171184135698785945327492535421615390244903445129002332927981306576475417675257669682767778268172107905665087431491322975904372896597982332268900939689829080474396889873747703283264149844415916049419635964745519399312002364065204093637816759073551261438793189678030346103133866025137526915563889018667251422461589699249117808826796283367580844812625370912681464284250393978648123344567961957040498381754776547071099269284447161238653490395105408513869988016118110334322340305010431904320357210823670392882741679967210853951236971935972959680239817382906028820697541217072962623379680546844177664510386435731064947246702376066622236881958034135214987123888338348500856004320050951381825058990061052290474792916518397705963281811124152041820643758420516947903897790237898347327733697005602074037747077734628628924249983019942278324224359657305815830493185458742511263595043940732454809216638567149408026279960509194716341342024014695811941372102841331098134668569892122332780146408839385819692558026550882262186119220134088961707664072374983814642072195775182547143442880658033228425408606803684873691368980992528275117382905928961251263277132864183622996666138599952056798430597746175485750275408461998193984468181882468074947608032020439758684204894123907470159139279369192484108357072749415573126524046195780048482069985825933659970122809986012196060468362336700851391767375858564593226516262975834089357039344030471465935470063345416169975139811253647447840218070404966710902341899956089074924898255290678424643247795476647147687547373418651838940317728660685603757638167011167530253901369129939127932974224693893441460172521871037450885969188823961843856362915199565421711058967377842609869060881099346040646506011046141255241071240687553309974172837639163796018807946825396519961766018416801265125909461772841524775394095483007923530225586675937434029297541426321300641465226878598928944436790941067425451076010775332884162203766415513290290108654894876406429854081972312174167873786667920089168029092420629059636251553728375018537679445514430517834017290444117243982515373956407398170962344681647143466767783926490443811896636345541634813155529432445967408553428585280317339968090867726015714629669936370248515353439006072748915600013079840595237068064617716506262798991835323876592785223029390867062303214365757880045742391929411866636830529414470514708393338595936866595709002193770081240325685171630977631088497755487074255941587566892033962527724858698022503090133641496619749610256170364287677582723608314963229694681955290579374331995547073241556338046974301208570224805347130158248151504542706436186983032948331088246362544756295130227887967080458163393219863301203025328557745481054767004454523625399041116392643763354314588266806831872134226378173228805762786854823064638945841283369352591449774863227220311913258877058294999161680156471294564340687607258202175962804613027153223698222461930101857233063097584493792663029301799776181486045278760382734425043547821587520044744098588938826407546453240886306571430378499181934384312298351853874583788659181062873119119934200557104905452733624114560683129817082542880429876874723732681694953891423444535784815509274804965742927579402563158492957077759681865053297879625744649429382193602783630583284261425972624953908418216793191464754023466821861791903768579838100683997049139006068291713462156944760025794832131005939453343545169599070973624021103236825553784327091326941456086958743850428545452613748787517856409245109817667799065557775375367358898922190865082450061312662549984299366862713136263088958095028103951779088705746996049523789382661001069285976446490715847430796103996114297807327559040204887686018880235181121855127473947298258751586266391005151047494141043709566883775307342973410871795151572764250085256597045501764939171326703822637790670477121481724637065568913593057472518662999596200186477652789302738002757026922379904823499762071868299698530377743290829578877705044102885591143887196335641927705035227207177575548688259731137629244331797030549524566446416996010694088871216074969258762143958645365412939795191618710714459329242330347196683562147444490186083416109277302214418049744144626968035182299140669446730037260206625159815856461333751286967957919758701240412154142715097681235681987686371337410505055327089882761618990195077194515002075151696790491423164770660274449283658076492846475154592618256663377587684636650817377044617725337121208560896005812635966342870015762295723151798052820857850843673032310178665480573813444597034380577977110449864590260342752257002788026117702097944201421816026639077070194844384062640483190380764275035253078764531717982319814502265507706622894218376142472401244410207945114044705571832234299499871825423990729379363447597247711962989401473416784886381508595815605650891365363958936071762036171959528009292786104302892977337215408923183598377653200208859209045928025569832806167009161913160750987444025326208881149950531075943628688673201793599676483453837409120557677832169193688787669066849996706026519804910840680744393392788431347478387575357301915402061929439173919430148782666849891311571311023577294887786510481137275583998352957272841089391346171123518702193204138643290672938597039354000417285540567521442580078504597611697518872880922901944135784835416491094495265089369974050875257458428880628577087941768900550830652561303305765853659112267839550753206737957863312809054039571409248488850393708642335952621097827986778443074249026660180059259415332067036659679265313138664605449799290783489897980234593316121486455403698255875992851832976192902799196094465175053832170454206109801959932439993004950829447285287333320847158051653644454343189851612492322441579688358962715690460130072309222344888992321328757010857590363814552639772848656408239904721012749164151242166161875426332664068930769572001970155817419221033243336787368858338622807299069473541018566430004680525057761390312679847123590810990908175756189691117756228204212839369540502305032201673615353263676572624981904714897924985094800083172510007919478162592546419319536672014252280765219321504258744616832063691587114264669723397020015962928922545388474259168999870264176624517496889083752828206222661095318536217919570593315130062902367028494864512562723408953265232247535227620063089484862551403075558971140553910883634366669977121950117571794435793956657194077076779138117627816021240713950227075452592082544403587608466172849999356960586593818124995405583586192720449643539523961743865836644673447582817503266373189289797406754672508419696511318129919105323378099939689962637096075136598325567053603282448957341262778815674149221700819217900504819216657145552058740431878726333251833089859423585850626437697559574310163318435826805933567748094869273172309317037218919134713216114378274669457739640682622773413418979812681982470646993870509368882678320131540237712668268731659684799505750434022663824162698220151093392571001424613341819565382455207093795656091528364284921374299499915964887077461956072857073431593613056399863682002372151504253936434154765871443728070164013700943268767709095842568980261078401050988363561389253925011673507617474962005938761217508022464151360262516900481104447530364901104749876528898655088890046578057266176460085725977946535751999086727101967824656101580233377485290047385306669585116126647678626438383882776387229281094547541517713701297224705154600488222089223918957414961676435458863196950379317771891274493863773807454486128917586623406474577175499751796480900488772670468862047308735307746553609218844693716493348072281643771019089352665316946233611361904366097577343782394976762270100434677448348055410549670082460171262116260152767086727846580934266465810738714815658138669649223464683692750798857462005515224984558632948423440456576426609059446347354702467076003140616305695981126734961138980555071909696418020535345308265170929189286166534313357001353332999010408193981987300333486320533926628155802797520389067672921907282225144803819018362437191329430025725718497150463341143247450976484412749699788168166640971162500071041316890523273773389539506501395575878833589180500349521076534902363551455105064814371653965342837648451419138363725519428197968811473048566307525993602621612724422275987803583653522833944669334574051403478236716276231644571703228107227980414929309998180041911881148266259446782421721812053307322984421967134393133869663464427223420370725484361389018953017372898261160452723092295429370496985211517217689610927207963272159239447057947632014316869066804190680881435107311261828668342333876227552661175286261812765825458675924062623971351715051001816321396412532208883577646356008845860950127060677862286109280010927064109386665501850497292281704557488781879050735066612292261310614442091092482948742055355102113852830951977203793224788151079199885382874265011854740810561027184237768431220962802611081699642531653522188549976428632182850358871800128363950060743253013613980090643807036809943697116133739938322573248359880904923678443498344110548019579198468758971377313865573019172494331901116027718878499885874452889579133564259036826525652897574289888015103217081980164353587666011401407115365887528916076390973308577371807589169865139656353292776560326342633925120711520878873980631453374358491803690621223654167563035736205076188815877461125561762722138100750209295782282611806574351575770690595118326309165127643837089963585529874323339779958987520037244639857735361792403429232382499969067257445028007530768584759652407403882423514462482930184828960903789703486719689864146101504002576558878721020197062899181585185360408244833015427700619089683462074895846731549225967198497339826856939691953896550043288245696675696406878972509097631842961442736930136079438544676897519662291326527773021728588301110127716424312327199369057844963670626193655271475631011036222766369596060983839924982753694870652394858101263361023188570993147335558554550697265535519802029932064334071123870642390841269983359347757419950398944439103734146653448063670382743137368338429950989998743210808976983533742677707112996463621585877864674490110415153511726540111740284207154138389647930445696299404321091587244859679398823743982254964154405604387854938883553803428269216027503688970820163952447806205179056033816759643806036669526221174727637263529176713418269090848901235454054318630937114879293934003736664868541985610536334773667545277544026337664779486586696515155994979689142828752807025811370801269205162654921338336989830677249914717020369667505588725082404208686897014352344383619325414456458100323885992175794773894589926386717093645685641276613099258666169441500759683940093372641212127363880417349401401590971072257677255455422833220325059954772007828147313232703973358995502761843499995831531781143279020725543211847347309444331230767594676954579101362859502407695646242997804886548874837588013589443907353899365470292459684756172331573055517695719150061352467976172878333104153473134236170247902214403429333761303556714055934639856165987106647233146610961037400623718816015912646869849812853688871640042935235098242622082539474688153097532107576752089302407386418000862886435301925592321847643825726888617984308199650562456347576530163539425927734918744611614172550060421153559626494111470329146482502289483067104166875415820996536068525450120924791257565357146979389972296550063145960074165916601735197853205027664091220506817499456453110599790104221671029953934196669095376457127345150968756326640919406133240725453283524406717682615127222801488433767542163219415378901354372033824502037157300958552449157759431133626006341680793898732797013228739094484167277317743101677160364420488063546974820554552959681545793594185704448524380374630163354435663679878336953845683814184254297018807017770139930443034794171268194753713114260534186772148635994989155945243331232136957329623986318046166931576971068495627439836771511239693203646073638523960572015216867431412759296511429230896067187534698703759949252309821182943193240014468848980680140880051719852336935241749859501484031735588624736839460237915291782455413134098995452498193122143205184442536529393704257532836074137060767059889418174557281227662913356723113618668449816573442024465551819605253979768507384584900905920445368981570522436850682845676032521896235060681942889133929038051855997868453342972057584909947039993723589671387471462073659423624789460346617684808298580792240145375444930997979597466406723845491607374725293330180374151531532463075866906359722773972822547265082083419943527144432756685003254556890059533219814988636042680888549773748151051305265125090923596427273236181896846364698610427193978120801171201645663709435840529241722606448699740964320278240904921751417681557935471534620650214449684589294975122856017168266050625042343383790338506568076160496265710645094171451496979414719033418103921882375626795225730990614414477830502153618706680896709320823192066834331546759450825429276013795999758479252013760464355969755268287840254931829400691275560267833588612261659282012953256629829297233428042681222509984735175682235090607962910211334983283764690046819541181906803256247182003109947239244461167983813214557571935806868480318977311383589429047972998580260791879879596154359292102792222411795294303317230762150471924979003222782443736145063719786204684630626184582639307821392034998170366165659476244614199994769278096311744970869227657478207910728437710257952673975623963458083432181181237831933199971717161690559809759122976773357294602104649555756394432114704630233043152825950059072690678839718319172351994013898721579495817993488287848583674366507291270996935167113806855817249742353191693319059175468750399160178845828492148838706399191202718238203667459333337363706279637013227584603828059675805148810312959215645674817082161185275964862256078691951707872778116272020918721210752889272660419756108097729644110873284589316223448882233693645811195729573016100326990935560772854997566959089205896628321304722673494113876580172786921047316245444762231413802388878486670192272656893897490049013612419370594343515151736228230194465274661011519081586850133267554096623096939173367998973248590315320918831893357908035027884408906762836844452593920206782273423791459607700265618899701697424515716137782124023663521827936236045397028883440292417275594333120323786565351434503678311953278013229567299221269964014853171350653942209375336658406428768777910191945884265034130120587524822793045794526196077327314905095072507418964659791026124687739273245565516683678857279323486585021328695370645983906016624947032370913502362226118327032734433850451452124418159292517226364256692711014568353134895096570654974769614168482171927497492565987308622433516609859031963628071458056164275181469209652396919436045526560333647025655118169267581023753843254551922405326794307422889490525112893817931504250648397123070388235738364611614884756267127951836495172739956355808842636889024032652170410686051001389010167719154490691690755938050573054880164229666146089497927966157195231280986476664928485195837665479752933916074126595031896167160709022522145316019065703798179239415415071847560142907159319308463509168109150809992323539720520103832655119581138314795639426830798556181931799334730271851790872968323092078289654368877921485581569188062750637429935266901386926139248306080416261860554519270789182747422170455032291324826042597507058026990474392329118828907791558276370738651846908148036096466793195726886548970676589410876456974644009945341777098379705706915405051660566599793206777850003538715916682483667046130720528728327972057819690624376081749845383769421020922376958384941640692877174976579561936817576245839754066939136368610239579421177244480536835934910307365906914002623341408726795266547009156626867727654647383286257203909389235468685442303091869824271358224768091602902704156567907986086795152058493753274986143980005384733433546537506488749155621644063500107860396448743722902002112439679002273785780168633645534594331392317681914384567600473813113564707770320993887399180837802857744708837834184165726974161243029401431424732055449123388432856540449746937584392944200632672384738831152932296028811271577068119333104519963265573169112938870404620624098227223129964522419959792048253191623069163170767983943216578570553200064547416826582456693519276769170019274625526889153786194041706916858362355090145581014323123768809675009327195856962558031814297657590526804087657249472695205382324423015179831308461355491224591644725641817439893392825420576270163540944288764154662379565400585021734612956089191828625625929501651993460700158194768236499344123534973162142278720452812976522264470571427285462434065001675880919255014921868037425586061509449107587976975521061152726984691036124407454367050538506215165855956567000296963597755670829616065835859021699504656730851064399202570718676171333549426639768483534616610826978815330869493361974172920331072529629010876521977972560666707064486103609810783930742336640580493968677379646413193068971312074408135598946117212021891899503219456305896970014738525188457130925589817557205130159035554156978665922490151796103634275350829034919236622918181040731421957580217868811551979816327099486187403840941796561111435538466564376573791961614335323244108370129829385968866552266215712828299525078419973570597084646847610472248935456596556230685177227266486187565654187712831674327390795943971904740080629850165220558474011652924520707404734262209481912147519684632824788490582477968952843655668153107828050916919443209633578508482092483381770509325260973447779848429939783126161429273734934410932700748913128538327100836348162015288170028131901016802396062791092282217974337205815074543486145501292609930722001987065151926685662972713518217433053048165680190106857598017999107324223039126280482720494411879751834404513506009535663742327662861649455359145663622115183987725135768958483838282589352643854194961583693851899445934703495258898043655305965286471703328496857374835127617642220741549760405235852079081747408442225324948599695413799737725626471610291431383714218220678370459814803850317561220968725789073450828543706105092966130923120780505915182009830945453648655479236713987041601709853878122348233778751647779300428223106638085796916399847718344449242992762163047269651516506146357516471876373099666562209707462951197098051416743156020977165489353289350780258997718156768936132569471729856657808252594411633808211115024097695361384445289636187050859624084490278665502640288619607304469669503257521780473589989629499412335485119692373746605628148587102882357920758939529622845878464746651529822925671364931947607228259716426441236748132626125549786639661538879747719488494802567283181207533284921122161803936155770428157038836142860729810612998595846871821212170258672084302202248312192944319275832602477100707168201266504822918639426664665923727149220405097260578513115306157206176574294522305527734005628517010977992412751332255050217024968983612636024830993964952153665545273025419015752891507873904806166212813087801271420993976529944813597485665332868118441838155558732299646152506265213722910385893231706415955318688823666110057709847127392584584542009289396244251544970933045682028708913405068855407800516864384543488631805698144936582922152738755518069440915283514850962809824803752154400900247967394337174726774768500456812773165495954118592381548028579897136523465355987305868994151859356543375365623509108651637945599423773412929020174509659758602123870183387240688189970734184687109264584539841838578167695522555520888928524555465491765394486348764174468375433811105527340544909024393590700775596175279529003013889458992572851712698195091716301619521760737506131528410515419861668202905220480926602600510695250270095697114191663315838735605616091691830386246738317865306414227973182987922448575816320835504792103814082848495323174047427049909671219757378962009272466769273239950813345311799320634834374715743261252439084225972484327412624474068356059691007421226751209014907382275943898209456383285203539423098006769599404450621752160614079741247424919947519184197686409636179441136779590463746712951949597915174902967023616255862406752680210318677334509008109461613524292886240704723587439856115922718544105865635221356949519398138804101618094009857271419804370895857620079311965368566532915025703448607716729740639908614887431405863281028165121975107943464748148510614994449250341902067359536555295356858800029553030163560058049510875743342416029542612737831945688869204195475086496068340372029268837711208483590260655900474686519650048047172452371786733142057305186328411301515738786024809316195155619805266309350351377479730206391721963831119791776045537415489108138809242439070014066703814715165964612403348058959529647678226192344919108780867141172360063557114450868654436117742874446824409811303819205111390818134221836532431383474172405143310155733114204752119219140860809361212464258538962163787998093133686079221486416642844775642992072709776324237431820077203705543736841669503135275730249622976103157177561467949650916962763485018870939056869873877567700241168277134794990441906833134181628026394063418541645780271579832516601861966310143216245518508814814767078612367987726771206033450675344327954673013114305772083901895916558462768847725003906978669972702069693627230129609756400305414855927084372528236971581392765820956454847653918501179810484852824522251742023673349026944581267957183720674394580373932146702523781329502714689458702931057168657203315482758546689393464779609137462665183290615879800097160351383894003892894326117577544299804767238395892683934476872686963541344375027170427773399975739861941120273658438622059678340737108920056417567606335132177223101135922643794580641174601955151547194547774552470920003333031769994468678676213389021486174150869432344580547416830832249978353214013125803427225302249534242921503419835178123482964461207815287368963847821581751388238162798954221851804228614430796188735604274561502881807257951340268265615076559674981494717782788223936562035932527465541795579768782725322582110502604652584529527676963556188262844484948768628535471491380238680893826741436185205290069385395090573479315765540954116310576864595353251110529760538406123794145439098914742147221439457787866396081328490201134247414739791176972482813938644255500005726451958391329089097247602932209050753200665014630397852868035493941919466188057956410081714909231840312845015689241276948320679819745699557035996472239543692299936248508829092774893033568909790123979968030655701914968133349982775656661865763721688919902372249355144725041162964117609332511738446390666918918773154170941714962840538293699732235057829211117918942072909825780922894685035103661014320148061822181010804320660680910772400790909172431241060695444113874135350131825391079404794564243538718462830452728698744017463505044047020425682200810167322101578286227215245588014841934694932785044344041327392614183382123780988363717360319927725265094225304620991199824486884945141165029304479781243891307964188634501356693477486804895174550320969578861803348203010900908553576593594397306505850208784769307078833818313451963981780108170098927172945358615189021486160513093127529829109161657579068512501564215185026870614732272204132261977153175230469357393114369421704864491587040172493233214006618880907277387889779667402955163175578294464936601719820506885932757386304594660570452921756831012242939316195291931000330648813231771732524617060600093515895172936772227970423231862527646917791439458603828737057296217826016477900027225709564634911895137769745264989696427614052042165136528469528531585669391199597915451929834195175728222078241282025834224239405533465517410933546018092816717767730404849857653141893946045354968448603664507936778434771538353372080307545334345571522110237557276054014703114064306961733623847012515209145353608843297467735548575392018300250866720159177032538765970220907850715437610406714822321409665664505925334184085012795282024837730530076952533574108423378643768824789698828357531886695458214206437221038732371673842224489277195332761730201759276464319133537221040826442029869786809885431127362565651813424979524086995023741123860524655642020046184503129369238408666467133983341414957293575984963968003227746005357374441657464928657643139752168473834010792970229221786731100932451740995757752291478705643574255537750668550565278951908641012477710634519270242972131765943516830361048354820904608997824591339559883477489693176251596290435326819718042168013889802797631087099497076386853146367041262689174306248868364755992239499245031975217547343823008105146381078346347319477192814917011837962588907901494003657959440330637468695759909564140249780030917641768786630702132128176337311296788053849531354728299556515232559321365692518583389492642113534411806967644297492591935326939747829262646803484824382627535706287750257183760770164659222514436946855954515705882662301953005971277251347773206626199598221466644309984511010899069868634992660972522229430567279035898898588257962057561194534537599075485847506791471512428409977975066994416135283727914201467639041575112133262767737749722989299084830994449489730024831952162684764374592048010880259351036323608347011016916401401144713472194021904373577600564560804327508271382298317760858434266215592723417360947504065274655225244320407023213190030589148286809888169326803209824401503872748915418044177872233192353238508113893481805470809358574082950656397533898017414788776434586406187353567130038772118955668812739034216693889743499292661500339592001619157537429889874069603684345662924675524669249847216968474367878740005750228778699598703513253514905628366169675393553775689024225164320376357102253718372707305283012636040251755692666168844316203014099684428028964005398980813853381405407230971808678993805578797474501227651728488442660969816754513992447696451267138880765197368600963051500803791508416154825461130873676850333819933533970218873080911222237634675314674523151415332614658627553904204766501779320670308323861385463305899324558646663544085275305997637472241292732236741371654066237162055094328957945398639105110242592738756683761458002184397040986972127836820999358214549929827895683562188068567722927273186726857157030359891675109088722509875078242449203542032807104540186275715757045695770686262211842440645353383084575917190331295152957274255427932776288234538089678943442377182639006484698163545362250443005590110891028189451563674773178532081465164530565204766461682567330584268181306654160717047725035372148824484614725166419568295682341053963218109758992847894522391984078402047941331865903306263328286849486359388228918062351086966523710521335823856121186498385797734071536591345179795897561683477505755520728063497621719555113851763220237985816729936940049227834108767252664638594963030337793136467617232025764608973008218337898298541028834873040567429184753705179956909502944701854590173934557973659763241837770881402469341936400929974243761126455526190173781291615224492688225265013913001352745057629628267629778312902667778790241596527271685589592762477978237060555914369265922135492483350578368533067597944542124411380521263974117041048401488980776766457883205139111689010323918613427318083922731970059450898557504020857922970413228305035328464721086557655252993247490756063508752339641342824779213199111582889643587425834049355204905775878458841847373210297931151924860950184923466863254547998412885979735867889367342273800458620359308357301133608743329234148821694133812104942436485440984299876790640412949076326316436179618669776061401040359946500696102212008080700472638308332604118252157678082355113361709920614226053452471942236057406348517542825928428066215712611037144719710915173113399302535954799137719427626459482867698542996063358868000146337234987470848353323945473888405229487822206774020448457575040790260421113127283787496938809928904294146990371729706105024582293504826483456998250407268201335436941233681393284484114849888149092138439348091086242585066983030111865100708814597099929423074844012887999413966712898941169987639167609570305227803681895987027183622986120555630142807520823850972234329299907397356579511334070530505599363700631099432696414216976566009963581576345143198145325048752936644056963313567858929924834310951351665213921317029050682066752174479636387888957421708848881161413442433664924789753840325408321619420714783738299122678345381767464373291842378988636019001530428831311047570300897435003154244005494701963415013171537018747625412603883677792069297761713458642867504542770097496948140566638737613173954631915675822762339380721594585778137181590297759793861202662704016762422749205948803336537592621226838831005572694713992871938376505635539134991434924888430957532447112819958053065900443757791049648037269260044854588449587272517213589657192846288308280038448208877025434867287973403947720008025507254283518432949780917060810717548116304891209607283278444349281725247388809353769265935057350568561981149760289718115912984530791188398165506235800926192527862819882143165631013438646119655322087513595302781842420139591244122720583946175909564315060166437310450947506051995335352638962549931789354109756706444249211951792423817800632113625108430552508371752807824985151707087603045482796623807080482959074846006622487732217020353204285647217586496346338855033169211872753258714683261913834036594956738690917929909476575707119836976775623370489849455456773612760348507785638817688660781668431212254368135430544424724985845959000138650649143908359856332506120937746838369067503060253047255908713522309841443549968924379786299360198638628423392341784901727264325300851761861958461980143078367794313132649604257317011359608611845235720325921520829523511361916309680181746267935166284648673197836796064390883003287746308065734691741700331954142612551111679405925818665245508841747313400876860626946270644569186424479384310910713445264392835333000534102516194424238468931305349876642114548794715886247495051196664074316026675434961677527212786829455992621473078404595869718035091716494654289818686622829983216819221445107868633260905331126228877276943289058030473776751611466638534540678872106093499440041603131891673957416719958587203750778032627730637475370220665309968758435964082861140043862264705657419020807483830997840746516889016934706948695168395506082062978064417296848426312938695038794174400599091953204632851361627246256475669515803071682466909222105346946713118153377484658011505079098994550874014009827202414942437184644861691306810470528037143507675305065552954357764766306309398938822810404818525423278097551688962410735602214010198422024016920851237248524618181279784057142696165057149125764220422313104493921957280174632733433679388603635062401856663224844889939862126758277703185421721014195000937861607002824940158316655186457982492163407796044558474960040110657033526723692619698004986111462439133735579900358638279551376119553625674127302004589169933479747142558818249339707987296218290495929989258427612468194486108786440342005699237066975254108353918615440863743217618205810734086098033603537692620858883314016499782272701801453125798098502144458031448750854164591979098203783556113499656124623305903400299284044280472517517987500081639782081730168565776881050740169190899613808014944147842205589234557998393683226227282136891996172915030630793081075700927802017155117633686251391115701815599001216348294669163908123579388607961301662778084534004907968428699811008288260056005083707158549951250280380868844309619122168232992139201729792389242404850995498902798398939626602856582647394344718749253886890416391102517813139036460305688815020954255051173196451121111507542400620593411786505588797081569855762267765647294840304638685246300915346599637504891369682432018597967017625791243852737571130100217349168154515101346393937357548705875805260831907546514350860447448753792199897601632788906427354634457555070746626557780675330079568890052387996339433749961857349751233983412995465887209266428847586115820273748850662196363920074291986553437246160779738549390096962515419396299981270273786149809659295655069918222879224947178397615742784058471264323063405012947783977801888124450492716513470427374491337963321190989622606363572974824653894298378590734470299646005124721868953920250904435143047960026274899499342944944559315803257723056069040917830342817737913182423485170716226784211297040509875383392666110721952564171123596911632350675800772873736127366068384407816747653953997726896250783563033792754772944753364713052096438684839252979490099398506974098043982827142775958978140884280958401548915376199321129796594072006981942673538711848284004520123653155444668150537665636168169702506481004944153518509889374355393115972669040375235290341494448710331227065430243436631133611111568939487451460938624871615705100399193244262689573524386753094490098783731384404535286955078723059254419348105671170622557131849142324686229642650931836120127771115161342880745590003538754745745917529842952025122972325553507498595440047470910773919030678084763127312146648769801476931292019622409588558504766994534218733689281311106034294912677087016061438361110828632938335434450833211389304917495877701427573985400803757046358250101700503317453992289239898028803724390693438981474945729129616868672646067680680679597840136211796958577781890397229443621170220475373218499311971864581455931112817713816806487691241590248883649278473497184252762271134211140828381559379508035782687644364930196848373993672004019415843493557146292093578989242309769288648556270457951757828331506598860741250295329362429163230039276406505451483022349951086790955313002641343904587667936778969565053081976378480491042616152808242428908331925749382704228513370652748331692653755456853648308816199119062725373100543953785466979579711039964626020817869907995569548445563974414588653119555512907883209096725853426679362151931416658456744545852831440867504957825927616957058507894804127389607171578626753877018071659151525908379769348472583575155065807911392312444477621937414685407953548841789126468906915287813082062420195508288312040381611233050278023995624769066004281198048771248335558944793964669906566233493446880918229696545429211061270021597313244919719247112917799211557750702363329847498318978357340055579825512114632094306286613740385568855004770076590432282069334558942052392462451570090537242486059747717874979719733901484523264176710884237837768099297307974705891348224695159999091849967780439022294163734443405344087294430850310600701106530099534073559557817714996293749570952685386238508594695519716943969595984252579597609227027820260657540161498567709807802740440414844687209501431722769221971931824454857807353581225455281008559303684939717213417104215641809265305141196050797620292967749117789518065410424393955299921778552526267250091878738135228366535217449796004557522191468911452392376757888224265767880709720401258288307505880687095792776274635966062188105038829189200608089337662840442607011584243879895379832076338781153664849681154625791651027849902924456142741214810909078214280310287270721620347922882419612257769899071079374352506108042317634837927058152511115891918672022692830382025253776373071769065307411490113314685252091932604080028973005225173851691063165409498041150247635417034779777616023439257576885137365229274148030361647937431177716459930460485254562432162514807299003519927633636551723748284483218737962799085877651768870341189411709055056747565106054951028310484301573800666163537129552968239725555027870980960694711303648967469571067300204707537248348664368659861324137068777378985858514905929717099994895853979972291844965509571660790175125129966021205652742040896804869435749823380316715442397770222528660322077552896889451137568314538530320465982467302962630368810739082741058271815159536767768715677329036760954796776914418400729983222302191423537916271168247825596284392616599860012161084371547323130763773916912524095924232673613425422954436133763995834063049236079603905356860566083089138949621207222450963431417505784740670208394940158697970135910971879729017032364036437119444055388893754660879484017711680668354948534609667601994770886055611253253328285145228338772926477850341324291989078006878086329196667665291105693074937762911660892142832079879067291818113582850311494890036266641864565711382430153676703699662208416349734608208414326477509854502037661841932599823029358860646879345921943128568463479602282630428492131544030345926354626338258895832762233938020217357238735950483666225764260279450207127289386780537984278182086062750191535205737230292270531308423192841280989461705467648630830797774895069953571633182102989282218696702208030238626539231697999639566674328631295430855372464047668011102430536639985008047553298269055452877467412573138539108445878116549345571043038282876561112050807985163272792107621865163838415533715263196573065297938962996878313437453680163235004067811071037223622090157166912244110876025329087206329270701964460381394897431677246669721742532731827241130237854454956856765043966039855796993674984945146483659447608016382868783353248108812506884071521954615853505981979508680005772083412014162534591733267707240867346221364547648828193417519125402014016905996485793992691259004850710503679509749011407216700523941885888185109765118613518633078542332399279109051547075485261260777832298474518914222323752377306815611901100337100495768071013808764880147836296298746184802648841952972118137791963023765135713001849014027272655979281781587119422449599412317608904155341991978705421062044802891462363335761493779215270329700501931154412217515793649946743618104086438378517842048631867276938443881882878316835012760879761874549386782188293173752535548338323559205548653378367200232037584109970306952611986198245135270835075334761939591110243535605192978069016605856852815348856584457711956064671193407143188178256758037061643532451884499961141721024411935371579456490245063097594368084257470435012411351251016707757658404495077459334608002878633823436149290572977035570745980653674391891425744656741786754041929321141452090621535215730179151515524671721510188894640404822988191247650704433034669847109131816941368605922045043855764714697369161895599269021233025061613901922990060240995289851141257194583603650779581446585577159526254307069911099227395511047890495764863786537007588680038932506573175258856495832364951980550657227590275020068985151041253900026851397115169245614502739890540296366248888053037595712273746253342770458637003840467719658429017467794955239461107970907665723532754498152815100661360635433167024093700236432925206247145722307361475632135830753344500577871331639205490287218666526495496011188314795688501871924935451475742910183260203032345537780225928262107577438441314408466558645546519733280875979501653623498759538927216055001598143252953579973171123224231211105285438748817082795593936748596191169463066678811002269323094962151861729682819433847313496275580351803522283883106098685900122827147178262438436945933957036308888857814847071896787007610702473264086762096512235780559441089049434256405263242489348716568517034702617734441558088287508063049048537422641296143147337681199982425613704002697564705624116212940242084740876001302720097883859863446278854572850379970771816818552122976455277282274508410808623704644492214093739295257223147464832546188526145979442532837264829215451650098136150638895692196528756146647629759066938947613973352139636534651255817742289291921895260534069890867858937482837363147433490023196517437457939662489131075041462051425865003486467845642136267237596826694022990160210537393368348032603855188790103147255554901559627983433034674614508172869329327266537651867449318936248346126889959545241684386323627872585924028650255934274414388937544911800430132872984544844239842787557343200191371858706927083244631773287982005757738631701456362385501168789804190898415516675900851565054131994781147645153845899576788102520082234749594494561701944783177187300550103594633947327318680906376881884762279517678639735458553947937641792794034913745003941610938000620489153949519110487174028667106509645935174317702502989896788581950734066291833440607740242645892936793536706136844300446518419261349749476614971140102921082037875217449690302418237936040546144687442251936186817627290226705815365189118940918606874534113378503961906825097227742447019486490637374844468731362908723792305551168012791245350444786061476783303634249071985175538515136885328283724807774996063046371945821566609916629955483516998984273914996687285029853453181442681254670259365132922561905973711477040162486755776434214829878564457442244076841822721109624142921804329175913456274477211921522664495736105785158688921335129496721986074556536671689544083509805556145742735229050409643982660186140370013515224145834080775039960545893006042960701156727870777257234401734670760064067932234946014426487443965634143267573686107685360139469230093620611101281033851547803081064141366344348388022007288841654408010928382186269188993037887959454917614442455685327848885401199981155408556229693962223476106525328231154853183564780759118730479832774778398561209449878418723132182658912404407717351495805491273418578246401889410532846181856209045964942973191184666539087806229580596634415076590473712132012515449178589961102656815578642365650071554380845307696963422891874947694160040430670402906454862307302613537872770067856304492257321226034650530680620234192339191879900136542458674515121704138463296969107493608081425806963526771839671606095815694136865423792052299273149686253019053488572607743369489899866873265272206648249646757758536939793762077692303356009388038819220288946611641670399462755757699886578441165491666525869086361150583397590337586426124924160522341131729527474043573829777998152422679439340768083016502578690470241848817183380974421405541511408537686417791198816720132777661479890421037769895959538667179103523890656377812935739764605078984892491272653697489890891332387103037368510482220476259090343824785565945811122211191200435643819332203057137670551602054917200968401895074552693304147185294373320766674751122136377867675150675683441023642191830778096801802469565585459707053871147315133049942005468583239395490484448498766469172161569893151625736089102428373155129280506778039645591422712120277178001041545506639078407959184580564933066005772168908921010519803574920576151716061012369869162167561194650924549421176871093738568253642572615218292924995465533905387744066960655828465684814547477929101162997767785113693012946957395164162958494000120933864702294293809899870570644818007309556660091961250187185487961297192736048500978283882516061104847532973810402903772877354095005188655270191335884485548349054287592970329983416179547876885019388989266231511392383197959811329100913376430541693726235670037977383293977622374934469825800264030952944320954726176968000929561683729352364531255354446515380032491240787951528487561851982550677421761830869416571153009210763958375685649080327069680398730454568083776876528660579046034570553623473170503811808440894491745372818482089498764705708021906725688053456630321544838581213243601954316482303617862820609514393946641710184336510782105470792053196097238508368864367907332684523424411615750260325954801048686946116780205413912114763123948713144797627005534559754783567403457052880193363737918333354632703427940322119150405339258325783350990388023091275080029691265483529371810017268825025112166710340905698293826327202813847925522087058058491896766291262521237263401911659975477019473000862134023926670312340850569258211194533953885246235023482559519649287377222462825272980371280492043922876713669011083709557715616333691464423787400961945218240559957466090646587821490837914014009771589412573001912880830706583325193916575580291107721093339468105954403693901114293253956691243991727532694391244500611802713076700369209748584975503664799504278184411858580179289970230106548582392308638052904566331481303408903039422907190409630868598239416829905936672940200942086493507914724283849491608893429355033562243511441472242409263203400404921627173235052240611396426437932107970382435772073297309632531573791111204255839155822528190231302946920891151168279445783267370392325147932259542560180242475364338551503795077533897841847025065063631197340917046739719444018546230705234605690494027415213278040678756516569862852861554574095198227454739343721799233437369025849041053698536537360267123440036634914286310396064269450812112755188984209451210925139709891977389849429234565853826909086196027654369158405360122771122503504610888964135380812800276195478232398277900250626783725322781113299820661147191945464118913949471976224744386911935059239344707103744939736530067798958062197992560453081070443302274885891842307502991846274190035959972339214456610471171227731730803855439941085237814695643331337760445833318169097979971447998112395551684652914344411262488774198342411085515305184987931472680604709337173643197032748363917600024945756062929575312022906888180268403783412104420554204037581701213380859076407143695275533882781985586310026988054252692004772455400240074829998776533339341990184238308321074037011720842534329536195173763093722468005989106304409454720234224851392606371681111951201535290568795892090378344576417803590681769463393201701233686578299587577885425578590287711544866140498653773912422006625556785695863836301805166171346251009117795599310125290189435009074801795641752010020384885091964772280276521388571562391682306782651312374776893788576976327317241536310544738280108022442740987860438391502674516161815014386713441572531920537719349228769827607939421740431237145655269706250269141276726676505111411551965431069943337431440526429932865930558156201015318719355237804918155350336342081881131385789210373230022093505768221676053278543181844503112134792328089454987969572089407518842819664849312184755223643573712998379230969280040001595028455953403286637750651986504764487103789650898378390686473250827349942780249700739801368700941267552464411937668228780892229021923504775800815442592798861984542803925688501414084916303299318011614297077471194801465853770628303545392019580450832681711976394346967883820955176556413379198483158428818446378477890132200402906119829260112575665218947912480868447819024947348917266718164809921185335745759378872263713813077239368876642398776192845233993247042805450016837507238399124382347459087148393524353582291958736526956422926330766125532919273449203041467913787788371707322246204565793421192308515656304408309849189467678542712692616257642031133944890666629262737084936686692769708900813717099009842399191579433581356993280025089600744493811233635513104746878029007956585993818505573594591838246435136760716688398742748722945571274546549952986531986435048394386654924410402867696345105105530002875446997078757543850817104206094066558756696529614426427231378042741149204055380792089447433148671938888453344698110949884121500270923901679507078436715411596190132876332929885705484608105051873679658054800646816826429566244727618374523919050128368829832987888961131805639683679367339490499895048514658000009821992891719016543827743389587225248636858099274114297089912467716905479952896523171252252821897748861945107125436499128340627299885744787870431873733111709169473927464675062056564104522844851356254726921234493487875107846748707660056583698966023625282142357525637630559949149769295933714672766955212447403322253748348798055139514018471437660752029007745166913047272569462805497648154736589326341329637416683600152912116642245007784891007084534697538816535968896834733759256165885434618082268596176369338560909291904041219115834934302734022530128818432089391244865086157055790118366634076277122623935226965424748091970162946006296828871737457970318266295224265539357468433096526806870175977226128795813237937410379407745010494077628631707323070127230974706052617620651523411640686508326619308536356579789614384795195389024799566972816988727004560324484366299461734462400579213947798701744921782412750313763487124358052910950261896971908435028283814011717071841596509209807266036569267577725785369808803605629768930054006233853694956675606108817109642813410972934382085797033957563654341485732405531213690000720232560436547365736136129602926555877720266300059133146611946179399499145916893550901297029562252299185300848933130398972419484116872307817865211820010816496108708532936218641956609106328435793958065712223101764754097915007478591664592015443543830071596547061787514966404834297622267868095711601256620021178858094784765324534634111338057863649829587310800372946461084537817137207955368897179661612532699778296824445471126103013510252130971906406288996294905275771868926889670854925005247173417929079546272032377138938781090818220712544697671124656996777952268422784087198499035363707404005406512535753833539773859764032073189733119600156632238002017970778498332917539907175693129414361068879059430421035144673971802562619482599492222248886558187702706685572384370241434199150066628180247768651757434187955271709141593084522746624590730696988955675790387393941971632460199903205183097098452724961107588813493520914275922795434531411748124730993111824262480421472446153749075116190888758764720043630888284737220147064031193748733367231194861796819755875469439271779506832467338753862457185577734231890494768214937010897595490562491516854226379123206312650382032562776261095694289996774026680346975928523145586330290732958556710823363299833337129687305350435218260504070133609688082692327966317122276376938325959365598351762997892369939959881768370626682843364851711092612167303206070936964948339843504166039110529592808796294733089476119681455979516097109691590316248369143946612044065311895829648138043470161262451495231132947496285042035481831904160388620429835233217906412134510277388267545696649277506443929535341771803756197227875376889583348441077596431292714551656277118954479861334858586707612253044920874190716310486155195536187422200685261871806833684326597870939764926319308130291720246316204580222036161077694086182878349806073331400939751048010031374560181112068534820783783543222016390640064288930957804606065495152121353490621541324950245146146635101100374402690212069911207504008869756242843262043358489970355962647121308605616293670524088272549644364541027729160699804709991940722495840806747676641085047173060064555065462589218407316508651738497452711524612641912807013797506146053517130582540944988539937668318340353256293455049610694004924435840013480920608978737916063328586790290238800550208216179495212139301917327091206043316081216047777785167083986630932683844026220942987576285936228255328478188419655776022069365155857407538202820931335292595314955831725680842722241761755394186708933477999993202756508667509698361433296177043617886344162836497123286305000046374836055449531658468420596634791294143689006388501714559051004197033635949861561797901222018789843167919650110445359069635086247133683452386626748370131055457134914786112240018398664787892005125290408970344350411324201045554354875500680618711617849863528612320380640613321327859565312104368578644941269654044307491484353273328049042937152464313016755743159136088023173679316432973974417974058127108408551559463894779607103244079446518058667716634681448930650493715706563657899296031486484646815952963226430251981002869926963122628647201543746794852098098111693728244628042340168824955521949857028425925031928648231532441598353014573874770161187544635562524320930646108848490516185492584493727754318044075864465598850921250219257946180692631027003454810715207223034089389703012676639252961855957345953567380776220426671478341978364793055095802925365147535243204613665156336264910210435139642113733847949993423951090660690307104264622516774258945684096239571379402136535094221177246078313392127702712169989160020646622979756392700076688340001082129703237875053338379082139788888095935959048502421311805018528194974917243050505992302774525276907399312956751250361763190869043705873199969531611838144634175853248571359675776308350017013390380719018796760266228060857589635816234384358478913950575719314406937368820746940321684009974023834853518481325256658091132059653634716001819898392983185829981257033743584646317448336301006957978566125545282335231573651070566143082863758648625593662164382438623936610362718657337394682840884849215682426262566969300758993141834717306458965648146236742546600198667973212574601082979335796954809727809033865526360287897109255406767001200818902024470723893771747568328298803585161148846233637241553987624678657279571668392773772688529156447467796039041984777594582517871160993880043668386238829992704738514344044075636666135819840703418826961792788262624555652410904205906005503730598564136539689409903058821407475922242264413533490871394784580555710610762015222622651970750508009167603265569965906245717441755825437507521874361175983538523047483555271978647083676963718709821507659996375832341786175560485118631413188330818247962513559181237401778286651259145437764740576414223463906982971804028420999925768489910307112649556649445265339794185240544952273132058092649131525175536817799031220840515444268880627750522604850059917770394812227613905473645727699678461825171422563764553839891999919137823775645300993391265241687081942441287762679629428687920120638931960414951556065041642497353525119750030093213857714573956501583355035924952501413061053487437809671862085843084306907514349312911421161492800868773898257855825714320751155853326286428988709964295435536120108527515209998296832790851901391839469615317558061615172169235706081667000645590430879671666230992605322454370503136454362915448892959133439285273846570123307390262950749496750965149562398450404173243404543882504619955245579420265813183551363706308649006802015982269848154384679742608108275792305859159371070415673257819090143158689675473314306276758891502515127969481117573925204062968902370703507914586342309832242083760428975729107954663408437622282681038276041893196541521697835157379787134520911803694139216062910659266991827616598091310365590885227051467969577929695068303094168980615643151287634090410119472993170687607841279728578315451711666425234199154858781485324991588202939521773040288121011865932576427203903338638457696314343567788854827612301386793655666034010021338984925751375986274979120195173503285670900495925306860646126796392873392480267830975854112368057768261934576519697901409405968726806587213332267524788017400114054309795179196159831223913997414641705937361260635026723708789358157091336758988439269923381672687742321430325971375456820526029073846563971196797813012852473045921894452006477248475517199442753242193718358265486750179596571500350440952908440309469348381991885805454915383562172636212942528989003233901496948639086348825959907477412849789592332836846128464863047614497721757802528837631841839659142474197321433949352671129534835145902984099202983592698828088619383992988956426265610379980953559295855191568310461012526976655323311685212320895335117448518976828218596972680150289031565431455763992999942841101041116299994451119855052921005394148149983629063887545031295766100713878086193530787904864076727679169408089186880601707321752658213298160713660361165347990438398056746958821579543994129426362810414534953752402564184093290511100340588353858297545703296283177548962677491820831041699762020515811218283134668960717167877197932831626038138762697514580044507702697015043268404616384748924928973244389694864618843188519215418460168550988713593164538235105080289842863500866545664905729537949199637772634592712990918978446393364501741057618639027734207231822228726771282441569520205106959230789707450085802696695602526806839862838919959626892122104613141702849018750618893074112077618926618852784978060442946127624388895364733602307129323875935525084794666960473555165524329158482088150488926038419808902854610852228791187915787720844870880436305238773077196323739707005003077682452225490258547714755909678270683348566978203242419941529509220526822531173877646009864315703248629274264111975142205153389884078166272502126450470291420330543578154596333336041912295500849127139699220282341438413790026639868517026628715082676970500197890242923593209151503288233950343680398131201744030057223642564503366175137618004865360643617748576279623407317269943689545071582253611691660079149506995581688815090445286629519502999819328813139968228326647873711929405172493118852492725864023093062457987256036959474160819381543295531690123589503582870838063468958526803431956631671434228911822751001266907368324761994659790285225061453686456703500379542762649182885984538439981656261214564465195581660803064861927867594188138261316163270776980090023039560800640194358514837835189572735066676064817101750601088313138934776791415227892905216978716757235233445360603498473219486801792873706795993718146602104888216343321013047042564984780160398479648630885186296940382193735855200997401352021796119678840156255819540225160007626737776876835750646192592994363285644483934444453588479103019753268787245042860309080147708263749295181306535335982499144944030045847384103092820154248660601010700106448732908991808342921620647244747723058790513290193661126317128519599279829616809714188694943611432506950271077869120200953408974202637688439785026881259709632800886842842949894773865531202723854346264000224707527049759141664889479654963225000316086671124789457422296461580529644311462887330821863988166360287892568507195124788579476850942537291278769691923411083369170957969225977960549314910668352904228373640885905484433673214142765320613536692222128051318820050356926319446754579860528044134787060218721920253103335484799080891229501887550363319279162766260041184778129726499490989525026202990705183741927726618179796064256605797428145375628336741025918687038621920418407836185522100066826455073613405479652351761838408335338337044926552611728955819782322139833685768397272003694694900323872127200593133160928057720154476385064772700819017054868795422297534903822586406688351249807347152138823930352223281652244519757552524535927792063499852268020561827098968538400187932640412299012635155760091736726994982316951301527798029925113371973802459011320991004142506889557495904134678358218813670450904530747652899924170916515750596434702563377553168593203824244927000349566803940506072422683154691453329887992195207372604158048718320357196663968221870570001993750648324842935425393736326424180083828248114098459793579526236526380636601077663881916388862228649218980607494262800055382684143507760301884149532046930263241745679397645073856650383916156441833415289024678306228727848909804105598240129449099858098797481168271870716359917989332093983414747935844138821449220568608218706969217321570600880961536740983366749129962332772944155190802210720251433266358793930295181741732049543705611633958097824570775997217724725208049542931742567613502923803826833985490911268113823235276750114123581561658918987102521434884031507324304020534071713664007655693724736683010042292258057593096128974524899538899726020262751706168268174548421070693285786652047817222114262010362075454299395187291297597091869200682859935799051896951902539521032509909862077121342920819751854565089390006199091183013276423689891514293271704574868702829243920351037116819729006769488353357014621138751713679778057015337424443646210426482023381013830035101809241578210151299748512329808836382610532147285707205082301333171837285661629446976507888168561271771208354497499200246689430431828858683398162214503715647856780699325674219577806583836462750121363078773510055811009854101538620313900587902224554095074347755680593748616113675422134582714631659109990574507555276108250195497979814699130460326157145002115871206550919811277788962101833873223222929171971641605101800799946775052947764270472317431647136603719623146074446858168021307175808294919743490197993710343411062970109651101140709793607684374275197185365816355256369296792346002528403466827316296509908855844167980983652763265996391800063615814999130733926975366718694577198841443522661012322935498697450617513989940886075406118185801657913666295928007623053012000187005736324252279678767494815460808525265530077327337286812335605684347138041819475180551570149992082724189749099392213920409848061073229089932345786169296889302658158559341490625938847634604849141943246767429676971433693759158661627716199801771312399678136872701644749313520262047879186504389595173055398865257302688640787688818827527275454862809211124971123191072216317010333717158941363470651407509114077468186590652487578180393331307353302619107460327525158511379476399050643469975506128989205144508807159148198122397744391295011435751071989258980706081823003883470314782463751126246024339230875844040382621640715609152849834784004175667946542226863678199302020155382175615801966957177312283204745488777920607899922478981492158299704333921978213180911209993314771380458970952807494694312041141313620511007579270486108899293264138847693890424562092935683555386486855720393454023712111976458178191522914323227598644294396294081445788817143083280418662024530565371340200118298606623300231168561551323648874686201027824802969880308759446217806440874930017726640017439587846558057739242521094395763826854457976809208128026707332424987214045441760513262812227246704377549273015443523512462480578382693682575022339241856569814739160359324732947056492428851769871009614165046727139377228836506418308217982582644301774347038136321352291093570901243537663902895432233795959563524918839974227824764855604137108614365754274285536596922417407528751396608242848527470333916076541679967161858635230694061176940738434207713216187458662400947455266655178753517860360153796332875853415237097053087566838952096425098453488313950295257061885707472023170992118657556950198791394525485890111653165495613421083762593249569775914902188125189115547352875772246638861172709140276450930229714183747710795174964450392589804971127607911248348376714291639599713255994534629292285673673188810120149490041927260499078415596269188758986534193958411511054445360694759725130640041691465788999976237207350441144704980986045348926584841383555370811625236572721406301523438990837964225844164401532672340229010388898423876438142377500213726223145514804450532544230122943081021388040684014083473505069831053737541187946510923161810261646952866619605941367105380831570388830131425879602569166669313223016896909686103142501325660355786097185880018928101479879276218730267870399508909404792836648017584186709053587597574371138327555880867777100274702508726187887082041908601929433710733376494271324114728893787455428071087794694412572814067947606376860965157043546894603034445602808425339488872007709536458918287425899893168352769712194541888972430657300026197885707129079581841860278206801804387637204345534396102933466067453093510772656447651208464332197748260098590499533648426617474936931365337814226316604736800549908176141819121158088031124221990090690234854886554707748323505062497557931604668695925209255135257968179743032056441147815238568980722928427296445168677165018755884626434213963895632065884744642578326943624998874264030299875652100851964498604444182695148482510804267618432874062692679272826476613253205874272528896764744757971407505382701829686845660364392539785486372980081466529218337251335759823293748225105378998527566382334665960899939111504934647935961409934461616946590900891373517745638217872893163573518328387939737162332173233793206164370609277756634517497163091219694034095955457056286816961818176970814909806062211811244891035882017975098911006859686737671431139444764593770609413595762503493052216622358807099662826025654827114616074698819156132173736931535572639269342363479753156180556371552837595519055068374049189001306062579547060507113977181240252013846660425153819100062393591712127742673483357686815331206755888100491701216429254752389656117450606339711792345257172331133625815579336499607486274569115630566103384701316517814053561995401145110100208791618587964579863341277297316150406220253248813611001475267572374524125164285879129241570673768226158054485903150063069214788050879418376518529640526544396297224088287789485410249266905987877561808177914470755349615704929522966607567862864889822298438234565154206909743847166711649528510855218362364243173925970992341124772237935344089183683967756370192812059040291680033148658435269006666211496313755214485138393889348177975835324812485682000699751341496099483841772385760523260885586935213090365211143465469760467900509147475287768538977194863230804718366215559496420145448083887896974916268126326286724319208953502017884166774606198745511500311077908323565519725682270799229485563027702953470932996489835829507068688169250195960628010695128969786850538240401316332443178980646837260079953749939384922874789543466978605691394970641596289104524353983057603088012581268040433652579668210087056572356360625496152514143396581323468671134808942315495597204290563069292873734571839318437158589060681763624957230803231534039970670937866545078723725203675253408316365257983748778794073926552971816421886503939954015611424648277747226801362318986776989043862751171998179324649566439927640675836446699273544698217860377974943951296792649157674775552144379118926610172599730082900144177743343601772543882410079238720700517615674964198961892403598384551521581864130690094088044726869746468529437878661653054351640742136223525564727264386981330679027024475965603603649555237701565944315818521492329319820394006793518631626932751411616831325918796253705283194599824046405437488252735939883224702672098695421695361149355175115810987429641748379553748086076390694715915575464638636496515231783004965468688763675298303715982252994668278329548059879415397593485476282209164780995247452884339723977124816546041737802031973756438462850237926913130844731441365449252954148241720942962139219812616296370841048430211585198864050599545297077609366640231059703423908081586772341910651410810747782236097062027160704615831987122699825809417300949385341937190335321064515702061490283008085582823214738872386353037720132803488901192249812462956203728674131895645700340511604800358434771903047248670909779269087041238031959434930712611740798798977327998940735713694288928823507023878655861326986617623282615462756393408701908660598210039498308257504568360084739675845969395050256006334402059081314715395861520407467364189072628402653755303323381848324207424988143268093896316041129157708573778947146896797066735093277751378302356329893254141604526656091053694771445408303425519534966860524370166322625922190453071093547208338801327630542545540262367277313658738182179292377422768014078394618508789027980654482731341303224301384404530593233606625952394541996717360834731705055493451394735759018106878525569006871813817739729715949607840064836416482025620873139046461119431066412191171175124418259794526419091486822289607945887561188512388961508736864646152179723954402203394498180960982977816838841528456337546593327687090576960759996363111025761271056947038839833231306830608001189349923574301375027631213581606514736393932774507563444072350934187781746460051877974981403436224735635403272042060952935321846399673608920767460998643046844558796319602456188178478999255485398344426535499342238798829556910245215486415415603625240200241156542621592931824735237079018925665382520412318228034268950020710224511996193830513610189000881979559941660435156880387512248948517800350122979003723177379022233730797478610129622760265890841933585339763207443625318721289766859728672861589403689255964763336217908484951041225035433536362935076651947296847537267968709043302871099125144492541285618378418414065962195214007110503023865909486631885419890934753365001945577118195257625903381967466153985490290294378546649126961398777549402467737153566144693217135934464610261884690009354330434065725357199957138456829645920595528032804115935314717786909433836490350257861269333124140221094603813077953899694900885218579717095648345501210013754280953305077532879506060974416850938451352757994598694021042016026104089069368430533968881173903318840956000028870982321770637471233783280117618148848300449706718692573530600188551845847616456033952690680641189664008057099343715174630807671390985505926708715415646272343572293685246610842525338888815858499167008837653846995238988504502984375133273867869997657638882620079840420898184509024655892040236967067267949501845476708391330217428524253959977865376385177460612749461585404777870466968544165574367163824067140101694620122996701362624583297107187136056005758086227985442581586895137772090952074340205472273578353757879788653779256311336327230179633905852864968242240194820186476166936775215874794506259023373222836961566271579750614312069784766997743424179517436776171124841493516966429683066311659053161371814243900344058483227133590312616060818042398455821280151344735686164638170246280280124962182277561023023720789646086598613884075941607566002690199064740160194647284600059405276695166550297566328246324859045658138524392320919319480293332056879775872797810230560759906442400669808251313242701933511410282580910077198503738972729366061595643713305851512840273977861356488881471563900003040930589973006960847468517405972697590845028660470598049244354705999694814848902013584726553550222189259020502493554296452699233959286069088299021599783083334104625397901397321628818191204899723441753830347280124535444094319101225072830530457137198995068148419068502627703708534815724631402974482193369729343733378449991116278263517739770933598365948485161843084294614101772827067472292820447545027351586458941137402637017019479791299587230173743979870016008267340494984164747136117585737904342930778833296379761852893496896495034874300881903376282744454470318516122575711761293020439158980798712620734550368212534276153722861804349655237301046853548273916428314265228076992998160350957086982438060022131051370848217521556487524809135009836909347252515816768584906226327891929811290390959560994560849064654373553254327448897871594291007941776302720401177851682336727906216073867673214322855327933085592875194003042521527990632417086378858535251905901954441240586938708134995581808070392980925105824672648583423841418472316295412130281499955182096322933523840434578045610702039876523844877770081279651092978542534836516687209473256677790399791956860546326100450226115225304472556589909356534541403071368852963795553759809660383937501474889928740538955629548745773897546038546417065407121069456793924954920543330642996203614506745367437127779632366420474703213483593985221334879601877821993272489966964603792191655322440789551975244277341355868560850895195493939231536932085777114824292600466262670467133752962236574327258597835521560900089397999772646214630134946185175856817007039872411445811481812128112981592875808488044159967522765378959144223282183912132818938359799711705353343118185778122431835569081168433283576949990314324917160999767673462735670253062006231571438400974293558880066202069143845642055124139357650348553230664718048320476106371056365743640851461064376569330579603991348318674259374217604047551016623661632956062454744259962570770676464102726191924845876089868132498457075929358178181871359122619847846867667296261543667721296223293534013548622533553681843157037559853609423849988895274733126124216001238424477543037326985384350653167085863570472903112910530692941386776946404032026186344994052171929025427440130154887300876682585807976368447313828242357839153344739806410729312004656010898135978607623459253177180067785907891118297891667745693757575042744965851312639142862573061318066607803468335852484536672321329532627930836985716056985009920807872248056502821821973839218458353181887104093964415102774586169975947727527057218703732560223852519049930956193277833897096903830018769219546370241584198296224381567279517239506670051021980814655809215580307807890181942798637404447665311937016597895796444745381465419103531898901473503387946510917930132327212353827904582867227914920356745158488621571321732188472305011673992989249128327801009430862674209312519506551281757068335920971143751782704137758314050520001181504645366309865943468809208610262417198237211963971929459104358992750589256488108552825273423974555204521237158487124712119722857867765948812598204179074620260833329837357950443188824442371056699181313950552979312108136313585014582944604204418518156570894870221227649518889202157418116406334778868475770328099384860987726289683920769062371365557008609443950658634152415440763439192003888196675162631541478489638564876477529326278872047376528345787123415689780019644407634691286003428538451704126658893256343691191763393143061590921731564485358363979342617476450069994585746131133143500528638699051449847178964400095923496475918154460002163011799893944023960144950461267883649123812692104723386999171140494766879533519408682640796324809695773528680054275009729870403517893991419487534171025438303987697257437294081463512977960551067457700642463102275772564643406747456957155726544766793437489454162649374292185356068692650833522498230853465114222931010967913317599436265154965570427974287381185496726443240565766798029342036569732778655909226206697782510404955345737130106092155059760852637176861924567267791893184627215300869461596943672905335723583432372632608783612991882248786394487726172887485994441962094966704105250259866570933299215985637377418207033584439213958317372428739069075449473946032637818849684561090158681463645720890886843332243324936399322719581190300775756140175836545804705498127406613080805050685557507301622780543660431748528989349376851818909650454985134931531080397420428224037993965127323363183228229655827362470000444832705172290497130893503679310754667669269877355687430944599652849172354693361891305822809636680197084295992109713336108587930953275410941350972144361061913902933546430326024421797425761014405235127237081218936051589739367083689731801217843316989699432130061981225953772793844242523028068021752577261973331572020600260702797317242408360039661314275092281876164681785789374573792083751304942905086646796350774438887934145590337717825027323822319698610082403953949027695111209985315018847349927578931533196131452307500989112980014083458158955906200220585998227711708656487520953713920024730876197605199092027439723477405709625681618295408148141164460989617171851388410407502292760253769673141704066750619914434328785171588369318062338504382571628133187419221703217497498513152657086299143784412145241284338517437692540960238758217943656784600148392892116811072444345855954987481008275876711420991776363917910353100462697929242227014017377031014059085553727231551816852778396325656590650652480432284765362210384490413890590935574423890186100787670696561039912338883933968849963543088745883686217538799944140450921366529919386734434581045314935204057709669480872506784901373461783553264582979722973445010446749914281912693727546878369457272181514864772386706731533954931296847477518225109202479098136791849409577547007870753148499959473774410325080396108173261260012678880796906586602687836819684750234108626850036619654076879939190492574711871773122197791920578866813066936419385917782605114876002450894115328871461587820369397923396256401252833989017295217819596946387990796491017952787257954837610044250487382522392307429727035216795772614164950238937805942890776262844773145046361312344855814677926477256679144107056547584860661060728467257488351564541512836956129695866682296123059194274431999759599321746093457139743119557503315817393412435632355557034499832535682172769536647836906136246716963740908184778806801573167773392954326555814270994127262597873465746229034886412868706692748087430754024647913309889834282712925725778220831519245038507393632584484040175128759123253126588160957615602616656857353226735423621736982762377337204366402623785865171137553089511309593920993705803268285710919281620739182216583538768747459116738594416976830163505492477507133244530061821956172694953508706336924630420750123216063411085409799016195010871228953099603183018399240362077293401317824167178365151239972782018231709821067799590174204371239621065344280545142611321281377054902252965367834510054324266287034126817272648636095851444846851837017267727217387426645149410209446528787658623941833703762123305654017078605956010385085810578417280632078284509969802262417105662054972831578576505287077589340237533936188587503336047391746867312871902911406736867937955822973819110175350742126430921525986072823790553442766062086506584124282270671976020403696894112548956411328310859827567476866032575535816642901536881055426900897088850579747431887073326565281046953908658188283281963597770339255157457507376005162968309178152281251353624771535454121741096367027698142449253547963967783461458917338511243022051849340467006314059846954544437371433260294739421419732508991436527297226307423122851864861488429545245654613290980747782522006604728882873737889864370463415393967545827007623186257860073963015842249730466821731167251178075259728548049092311698575046215838548474192319410652896979826186871039473228231929401302093560807090821973074051515011145551792612379522836396884026241129934987906014202582096009308652228443258069819748603912264943243300409341657224127847608406822035590883061679130488588130832846139403642948337412598457987117867167156526199846770963383017666532416968632086759060635984478539043104015220184705616137658032479931577424774137684760737196299131941157990319579633483963141151261867906904596696258469640336403010984656515149129246554645340521135007542708231418643392197246090878759703682547962066290887605021519612278195476352411954773586884362190593390610077898508295515220951034245461780595581572070563355085026513714872736433573733101269931123753259518376885931657759618772704989743958392545349268463719251737552557912433553078356597606667989341264226669922083148204058094237575439438906726283409300987051872793795653173604593612323685766402753059244476312210573945987257124698830722165754242054947015759702290509896818587747895560337127974797219561696449460205917224293555530770130368373171848741812192275504751996450913076829206932652711277078162460233530423936738537395235193769567494140896377119576855735655937656062152000043663155961535545791072819677821092735969883663490607351633456948913971352426793184414914751892501101198114357238490253374666544257032368457207082994132821940893011731310474712875524321973813279837506949510880456539923943183786404479820712733114543382812607811186669773859884621970220997917714843527395539865972077178522516593682531667356851314468667836903431567706157919530469859442715037633873495389754291860762099538612307512614804341092277902303864018555730745748036158564063450803983878374908069298599156591851622889140810969744446773774112382082456684954188853937624743018671321962340713559847816260477535176461252658561672184717166903666984283558006289364643445020160661290340122631993463479195210617298698115944755166242755306497379336326851207649376335862347649696365521441667630059544314157241276228589180121020690070307359317949667240619664386677684745600290640990500959117018867123921277594813622943553540123485680419593192901929673992521557002370584105128990059739150399866919114154719388498594225992575539959255490848802491580007590493552328696014282650736217361578816196074004618804332213453418174262505952972932563450477153946213374161273223979872938729788951260350683043791819582719197719991065255940765557177627113942033858415550008594633714233692476525823291078108576371691531394806439917836053425260966385149238652816987389732660970992665626713744663422630568291733261957068990582101694327350569374492978179393809861381148243863761741454774041967520374790658513242304110959444992647292586807519251683888250197451682144472908087003078287062612819854624738466789452818435254721591959623429919523973954078193773743372615443403371720244662382314524929357829816547436728681799380914952183145936100776867548002724019281716257268294197108261489551548067525277900934822376672626846285065141783111144005591559225232214242678843815537617881634066900247400288781670054097729467746117825508370694462066923125805532375241456574859324784809532143935732599127341549459470924857643467103817206816999359240401698485786916607728198846291798331532871268847469748434259424478394401901126687100379253761027148187748218447809363461699572046727682662520118668182693949305889728408001675141747655820139702295759290404587621328614280448070274227660928473547364408206597552602889814819291772885531914636965603656927604002004423657822171779288839368503351855058552757694488774427915619619858288228244251139752433275988294785356058291275244512748526216077908511271071616747627476564080530814055321724245171877729736747156400125120035379183669709423579159294831647083464167006629929715373998173636683187627927489114332238870744000128012990729702128214222314824790016212688209413108751090496825579394361420120869103824111535514282930575677363161803045142074476220654302098831098704547525077098668183779434182212148193799301490693917087287343977955843683845864054173264009117294473701697900526351964834666535856649616239174575756228531349413551451626661396823622135909003770134072014908465221040538356507418677127834386818426248236567898336518977154311164886845916633231196494944204479166352152683247043794359094581230540657026953576763088239914945172076293853880740567024456009572680170715487046588601068597779386051382969227907278469513839577118207134312266121569374980448620939732818624814279757323233565143528426359763091760203167985143439832667062592004389709884467713825884978518862713578804175178960232049212366190810105200638666223091530230638561965353459116833049312464417095391824717919030961683172388550552716706602552604449307078173285781230518911021479549570549656962893001158807787410228023955932088006971573581264442998346130131783832069750883563886883082432374012024072922019540198142815714710958459088395467342411986092499689704300532821091638527689107492039828957591068382246467823102525970558865252577854994660166162199643340177273720784857915573472775851723512777734674803353470416519309847759933211465540787652267296824771067136075833735088926664985985005650066533624154351043239130797866237091466776383122904985170358715743451144376227709061195279850372129458268475100803461012953464564643007585196032019084259060656513790982950686519170901641840793048568193662506203134305486425821135714328270318273086636863691214857616755060670479137534838584551852779584742676397968014704943430150908672749626812350843366236289455051501115018662576905348096218576845532200867638747652702440171935539232839250626870689943662855511921270299018914985743379699423882715375411559313677132379781202759413118896013465422668452713846185989478539514900025186703050609329952544841473575173518795035692527425093029342606324337121847096753526439203288565424680265900263601161406111491785443324230120778057277109984571183222164448587709531207365822128326092097026624276671550590965502778479178393225652485788495795678892312526015745379406910902889210516507301369213714333874595258571002177913954533270263709957324318665167303595240522637591312502311159915568031814944998931166997205667860536204347229307248442260443761826920202513112279187750080535271505683236927742501672830949424844862941136488945267870170680843067081130845318301629756741032028372321783659837427597196889416797026411523745108288146653924964785319639929503937895909160906936082984514509927846172230171247389264777626517998308818262901711371890615248992191582134978768152386035235009804359788620227035751218761889009058037165307750463655911081833381802955862088198516265128798285698375393196213598520334546790492908259950996486317399198824850473782299859892225839152896493657535141438242634788605964181840577367613207431989695225065979167702947847216875385397841152191964821251679314223967079498295140396272428999831571575870147763770756589743137104942685778562749589440044145930312792857701992101800989599803917282968677696792041898474990725903553546586937433487490068500113606112970087002275247093038760376577206287863756784979121636919722171599389779480538923736214337343045387277201881541589053632385792099127235617923573858898770700955726119100545543013091847046542414744590986151158719854740377833810778074284354870008708822865339101287873195887135309430619428099202121065616827167000344713053445366434625343407983451363751480892360133352253889912632776236414306724864093143836650875440887765813442387464211533117637145896450208965870323944667530150003399841574938328181660764338963581187211763381619838461256997278301844447490576397136686545988086254963836297135060936540383182966441003733304511303789523439865656265238467685235274895347052951788665907284432577536170378605455306066877042350595506608685502575391181256466597927815243672503013557322922614701791653044608420822683406988896534321277372515296277402808669485889451387811403542597145052902967644649171076185323066724193522902161001212494776732489497934398096766508447851973760302857421101261648371451313069171479252999932147695973220758049734844227657735328869728536744995342260963377401459609076393436566880549447154397555699593785414552445125963565053715237653750983253520769362054753257188818205589713329521394390514224481997559806031275824039461278346768076145627060238595473794190953559127597197297661385587214006194096462399539221557102891773586245041378751677762943634533158636622924496071808515375381677854750622485102846042419164876750364697673385895427730658627931369203243108435331345996716881364382823375133242515509375879417726592657662124046174880630577948928628744709920577512745686336513098664340982101576276421219566532133763691044049254772777164605890435062865662436889963893375821909674798685845541565231393637564143374806029768896436542925732827818763895337371108813160413688833674210881003784949609414223389360974596735678309973617843275492343190183254211953156171384046341013372874722167106241247663517424165635652820096683554074405957783421680260734973787115134434655297337079356706138328138683082207212395770543243112626350496448300209011025843121956520599582930839739374606109506994180917851066620467700582012419224612892236912129094575834922905828162598035145476199711264863673225045684936275786546960731365117465577058501729593628456656482488630354038992783299391225005250694271731141640949404260879383370224854432296185795667042616299810965057939307159575584376079979500207421055710703039713732691862478946772748734915542633158678130990717861599833431702178085820096134527535974507166342268287069642624924073382692033488792089232570301141607584515258270867521808314252003815494874089131525468403870531559463068980268968043561344155284231421245479297838852274939111682280671924035069510095540545192733805301051639633111540533684602538209099576292821822565259529886955524552656289501191018682609507063583343136616445651273658894166339934876486397138152091600152279625163799045406113177510168611451551676660438513263861634359572018103994802563261351121864205586959151651027991812975387375362559811200613821841659100940689767908193295701201866253480959634773091877547610490678460137954105742359957604949976727610899759799551509075860834458452893070289517484925204705574843844718639102290972928499550809300887932016615168714922198917965976954205810870915792159120771533938517158206705438622021746470669056728666362093697687231612763519972384832540842137599125805840967988815242369952457166860654917622966157311863940884411011120645488490004156031359212591108874719849442921123750290711687893162305758315616043390791462469297839981152819078535503672417840822218203915784892493014578190514424406604971750867205045446916549610806812061290608983367524178973357635953060051464797869332286943472754666526054810517520419633087755918073185203132535432530700762861917087171143819936299776749752510003016387080529628915541775183275387545704375055699369071909630187018772448091092793083464283337353311277332924799914869272295310502013608757284158121947495396120016446072080889043877634900088012126751094702604162800929013016835683711844435393790858924271193515878275307703346125829904991520465963081711885478474473837617269684762219115244582354947586864148607082461453783717998430712957487360691154999228344793279259089004766469308488335880842519333252218932165059175460657123727002052063762475719366324494428087474740840577088503121562083004177295706120232932271391588898020288670051115026701804920227771185604669491541718983481029100087783150386743640616796958775479683573441175479115859689922352241002049148623757877737024606139564400296433657043291674535309089186606214081466192915844382249798466934457722721152587511135585666203688365451883194893310968372255791855976491304283098519282776002011113661727814444085427281435195088637519872172551831238868708544134911564871986729575254279627841551732245333745800919431108549821346494961541055966751512518011791919409152869212786317032601183601573176293233064658011227824631421791654207458872493363574826036065285940352286939393413999984742444225861988693227124014653499443716349415081674843428732793091918056942173654296438581208279228670530395248484692961289746876296134063796847645219641626602471277231391914219024590102669845565754467234108677023835399808213700313924264743081061826172455594725588042258074570316861438127483391217649223417738177922576757198773599371948742782425036344072106339400710791982695287037333974661421324213787845607966749343717830974770344218307395060135598322437447342015294537062451016241549734604211669480105662652645102541171972244816814766075751405044086862836012793689475418226184541309529310038502124846894050714717485135742967313437209291201781594651177366532425061112904549662857763764270151309719668930759299714679516241441331363132560012512222489662194818604069525710625696687514867946113453517969008052177422085085366528252796081785538075830504353003625552720087160402855677966942884074079045719523451319148906025060092785475287873152879021371996857746221420870666482974064724253682658250127905927325388587649662148246985569458876639239085092197645473928965889184893467593758930382412058610558916983344855134070105132414777797703095640183667903754847078279527085839979405115906053199826811810695994571766327730212462127083451359447357176274595711992575292794531294394073225473327380722816993040714908202145539467020629794076471000647861702392713198846090505103290532400482311500876454166330730543301501631087375943944489608746384252860350693697978932240859714977562711360632267299534550443582520858675182163105178918448798034370332492815226275702635010157149571195068362381656122638492698205307998504208536702232121989735107575519084603344682006311553329308528557309553542934171659617152827407047630376071996260588570530890592108476300963732837917333514730634169305831762431376100325597550390984419546380459488949141822029770466551230504297154951924339976797301495993104850035853634269639796136766220709689455323129718270704019414452242391326680855157525765407711674820932908760611227346528189822721332213155108800905778454835929872240162272700442849393764257008182724045355063653475028162578800105085452328047590203953589362610491008870612046735621085695778552384352363667947554895365239164309836109955785624885161874652005259422973204709674622783519450447889993835788228918162740576650898225224732987807331486104105131798067446208774713859003778127770292996698234292470059918691078586411351956735194652134560984257972148523341484079066790792049552468563763108235561027806178561837593734275512202518642499624146175022525915356071886713237297084093085215983368920647934364215064259527132943963272707070980572407701028812295575973695822567444684890354745474181223380980407373501237925036720452203836059505343582005322007651526194469387091624907092033015233780088684253500941358601470238509062697078317395035826766735070436537747983849745838253300183661492963796086468016794414507086203700429280022654829144973108646911474455455375795878180488890955325012802813092355798095353064749752803721106725849328699095238813929528050742700314294969837115214221463781039940931785268110932716504734484283795744995121164810351796272141687077769902578390617050654248610702099888754575341132496237291577581443636078462003519477571080898188019609395664274188126762581465798848789655779944480037896387007075403493722806059150466832282896068248099506768798774879575121830410336599883976834894908307914412159013661003145342249864868027500831062815263304216925740449943979553493503376928378106080543530906298512948615716584929441934982798892167248555700467192215060091967958544155012228020966419336610539885082144814846373104665594278138156547328361544448069879076970281072503562416202131526562998491038281276559009768136478333677875382208922872987756311926277534929139874313269938230625669081707134870370683090081845014415715264667098367960483749004946805481607238834437587969274989837799994283309205882484088962914794920052095091650512262358177858190314802435794821224526615512402921655310075989575650132490721687039038067941208845266871115555477919513471890249863622147715965190015217368046459481894706099643854605368988681450879294255459114783060179609483268756221072615872882598113290734579004977104978995300197815943325420038405615022057873678054884138848540905841349114122994461607388097830896371671044658812499569079811698677140120724063423260916867816810879479364950597417983269733678883749525299420713071631606072585731716351883175655674180221648416469400780323284436314951927563746115408071108706920631814866757446963622456592312181275987490749715388382719093889452045058432979080585190385637632149470518192094381277176539915855400192064112371092377931163238993633419699776444556394442863318422354255582325048487167089945696089904405505712970634804175166780360367994388094388811465550874793336140544109802325750063427749478227057751777960201857289378135770366320130895110843849792249939153032405148035188171066111734094526242850121511244628877962028465779056550647607602639470916756427066007214386442725287086438398543521870416372935574151308549758843989618488664018549245762593330305555800487807939656445881937948184001035301914745020731268716078708756711562965698759255116808477420287107510806109209993734424743329497748603290307739059883284029246048030011427094382532932626860771005301868122500743756718180469745760202213231540840960379578493938374628413136895839881088430273006442767809690560673895000332985370121527040366995203325241023482552147323487973938286060068411661165889920091397293891514031804630282109507813567037331034150239566327240021171446275632870239248320408374523102052420488933088543578758747174473055707253111175685962114408314672686247110436173006435149108260488525808859389697343284026048869003276797539194764381278700244453979104461418872666434462444564527986655131213047503395350611247697044748089712591728549008722835411272526601306553888796740483774669137039856313480999262117855473950740926742253898378436843789324262303219861205559220842186315296583010871563964775533129278587787602188943679759219998845409548822252775828212520489291658386932351159228261296051605512867274806951682540862461295190571605831734923851731148359390851636821755594023615442165721668184804785805806189678245007360917476001264451668722862924640873246627135404030304602166748151213186896846536010756951686506815632705649437650418998277342968680909527836469382388332346633245931480672145195093032162847862077460735598460472357931098702375268579740319427723226142289259232700567388716346158768517242820898550332052391265390636966475313462011230860811141726379532945475832211457030959584780732155656551062225990324428050319023873484531806260739980976716969779690053647706336160336135727911945751432038675656454610051764576044192857592278919159696609124495284242280737735760486399734386179924702674646764664052488465195028665503340677595412275599919080996739445757435874349239663548715086252374325959204660714579009844908467715710732869493781774198772598796703474261801299088223867519005103598174790715553866851861990516953268624306276194926002550529575836239513937251006278433072653295853159327505287194509936418390130316839777606235444663179509960098252284533931188417827175306591055716765281778477939269859093477249054762575782793423912499564673387802187160853079413793372543534947878167364115683350165118869666296841277014019594600983605441950924477194890049078986335852079015681458617652753838045474709834873651859235600058909462535862972581244316804313306352092008130266460328961031170605414655727920778462481124540431980197083458063017687995425057965037455305967535304640656132288000911696861362462644509667650014794149356725281421565453238548920675830630539347951228532687225023476732867460465128389799706351722110846485285133541782605086367805271077705443308066840746840229620224299887962719480263896881299621643613479695988417100073551245813389030863454129393749544205383251006875701334730750696372848450500179116250722981895751642283371522205078381494475680361315445193647038535997751727680342170892174039848834567393466227071304801712240281295917861633820740443855959916953618924115595983226517389719725012244083964643690712623888384148551693529818506253505270123005060474518617704664203970385953896731992510655049594833089131046515089705446808473373207904980361946219191126512940826970713054185876131710334418658111215721233479277919024796868049628263447501580929653862757384255715067926546829254305058076096224975975321188344291670492623445927075583540372681457122764548138785357180360079029707941476100567852055327914895242102406204535137454882150951030233694855623250372300526203747889266109137176138886499662777193486703804368922156098585317065418073612296858552541260317000291672671144294499890366438079263149150210244453444005744791263292421142684047134656045216539936020099725294178677998926639010800584073451134730594134434610387112366847516155751043248726060459690243126726845654845731792521321728260989149471483645623936960646851309867702008231875718911070070576363056215281129655308264928654817822972522937076492376363693684828315932374452258774406016932883800458919574326528390497169232531538218184151454622686426553018757892944215180796588573126155640911868325592828597195211733067913200795964118393272336525294348141799399823012052470316935185160511714087609742685162972741895545299611951829134672874101603336841958361958261897961606976966228757632559439951632862541648598850185446431059230471787820254305238898302422222155833662607189656871103739511472291503696118120333966511865325404681033067282568829065990702064785697514842718639752690103604979052223328852270115103137755558300590482445057215928537570511071674730373807647695992858779189693843621960880450608798493046098475656089924868088168292718903540335710561580558455221049498282989317074725719906713136806676279986309230220347045598822546147461595261158901004149438261188410810978140302114275650651721278518303952547805753336793600351271362553035044054624229159056872640058064474450418957956588992279931042548394029417517766270202214592485365587745540534528473747448998087336236004983438111956946143780648959665419164374197204507798739712747755685717905801372309733133726259201012380190405446701292621214014472105002020928593136622671955808655525034191214340873697339698403840232263999332785015213455566260603535597284001667644303523133466417605091950155298456577106620278388220749313443322083129909754666917041172551553313857032113803431530709821328188942069541196434137620833943621634123778377872389216890139777152861990300054540171767003453237413741487839451069533743729003431396822097062789862486768484654703140484181575946045917868157251407022740115144616610237853302158340002058807243225306754865937523228695976862326456317871057892965156192824323818230076163697594847836794051702454223919535997421110628039451107480600362899288203144360010614254570332898526910016232628203887650280295944064836482496664271869757338801767701437419995381696509882995772694467660219595449432762913780429650739004367200540199199235169094844061259803348481322048225401807549179761844287336238871451746850216658463861832437922535437714863859679838151779063475808694654401117498100542458326796222334297991640567703621084174807797197934420791672660458243048529781818994717405052213851912178150725320091840280975055889319489034135276159753122436919969591361496281163607899161823034032390745935351519010628699454345377507867563594159646740791652165026114352357157643278995188831440808283357971415037805663802974503917067010259212246876294504374778674397623442853940572237584481166361468751903702638879986138877051642927374090299809643282054618199142721004828826401771078231497463430546694349642724072029613424196291266954645620436325975857415894468566731371314465873477165000533678168980474777110751490609894472649739662153017709357439036745311364185524430602561068565559890049648941816485277914392103466330355568078622125765821998841667008260238187589788681887274233660955844905521197637152377400674950834164581848417429934077939793272765233080650402025753783900586603826276144998080287705980063831099131713552638238103361052429655685607453447153723401603031361468376017570804693631688690290775340344913208904944950909544437549945833323479684080618245867027007748112241100010918612835876763219946987723628972023738505656626142078902072021214845093049832510954066353664041487922675549131740271823350038065556306890988952126982158918517873821822281455161861277172438727058960938039325790458136653775521799316104979690130866385908389998352235127622707709243245442032707465201298992658881154909414702466989175719597769134475649281972827452963548924617136690916497555112898598262169921670812966501617000122432648882690746637876295997155213834538311693603040169867586852916747495074481190578029388667461746769488857657192433416827210323325165094332345584004556807576534505672616022931842599409471715568877740552877603811930152153282105131322812805096277523893572284224865964862420834350242481573408109192699075733137010110640644856971268076744651091486810189514787557094465201328882128739423531239209873001910354929773220601255175534192363144770828865682008651337295841311685910088887139089062463924391468046609755661529616290992668604747351240491011733940937399558763033600129492803606380271146269799891230598819113834570140446845178491975322646054915380044799485356433985845735519473461842304175802376712742802527073882667418024277326153723887315015291635643173334403190893288045749850686783822727896473619424420019114292970405643783354808519207850797455494425234650516402967844944142890699578439505392224978251019627770375819033220126855102637254073773500348996609967376492630356393240691533957157759841621605295553361506889716434902628898578924305607182618711912346373097951996915271715840787976683265771884738420711389118379973724240699437441186140570297055328852656922774149595154037043074327187082120230597221228875689264355357214223380552204102746868818522298238414300324808079988887146990105838974354852707668745478476307944422802376918310707843449362110636724934992277384567619934466280619031246763910833967982420769309330266667651558691721860410975807331116392601286797465390550189129753095398036859666621500865334930755177412971674906271735249572061202542393906577830935308280002021023296486585811441630429861598163397234556604872300184387827050854520369896132493645189375489434823864864396310085442116764970121416320598409265881515793651187404218527504837125911892454581817723806497622811504083491224342913940530878817180216793600138830177423444748784239931968272584382460654370944265450619310650113810105233576906179199789217938995271204729703687448667447146209047746276279181854075743011046617659383949202821829683810288555064299643391962650831121961735157245643732781160015581254564484176436075633102664014386799557297606544197968593977223593008534287013539653577554009940129753808151884764704090251290553024970693848509149226818185021359415582407257192837570720133921626802488339299384433348369896151285230238401518361708797211194752976772896798601162626885179351325091076618322032219547117382635589510509093234491098686856573943624120114198395490245134934922866657795814188535492742688046459618947307338460701614784226030030564935803719345595932162314343571778512302435791630524469744908974816550986488511783568058566149718752665974353407537923930895124223310127944525552659610872471330412540860691894388781430096915986363939449690413213022224086038562914745683912286277187440196843288020069001981818935180601979253116430467896518317125800348741487798916185662702339209420446278613861801847703718203403944409228038465907533182487115864821062960739858690711528588248450219967366392849367722912964990340614325078543865697423681762269963607914151784453249049320812349269988333878835770478111468656790331580742652940136639173680753429294801048206773830531911740203536336995290247224234946792694983995774173966381332915882751922551823872081469586937479859337298420112006221325070809554507807984792802429638810074332156936785542826283966152028422903428633980137371856225958343438992398262818628697580080917938418163199309199559892422913710674284961081425332455961531987660429781764531947262715110411184337023290690960585895360329667186682921509939370291733804819877362853447954200949243666265122920417404668958401567825037586557339913227870058772643472071467993841634420716535458045968004941873767932184320929469317537458550305466881667295693057454075878946301730352261583848923490394975553651344811115887274443246967918648364986494617881506687242197370423111702106118416216849234724972393122166913102984474214552789226766761229055263466823490465053918448478672407006403005300530573169368031266171567930953920170404165585582197444586987750354202357313860437976159569857551622184893357587021002559964718336682359591493748326912230055433148325857039234930840415860027639138442367320830963901704069098417146109523652515462636665389762724445696056751458857568725921771641229699486748725649929423780665584513396881655547984083684118168043333799451627837483079741943072578703918583834671957488560325702338380253803968276196348288413621000171957113292432955672894451314740233933039361478991019172592720165977218509100104179466098692480135373270568876762700784458348914616290008086071438738646584662711168966233708418767510420243444114511180208259444489888406879320498621904062460046304512057380248491024899178820475155251856336671785550025044741894755985455197856988237746141175508773144999635605830588065903252593017517116168629266465063605654497180882894633957276627912934044424523242567860985604946051751858185025614781494689171003053535712987196425575331964497568623739240199410715561705883780424122240384544676581817082073993077987458814747245824195782773329849113636130984059312179574012287798817819456966304362517927689487813027735364393226377264486114339728630637918542695894374767968435091318929707824096421981940893326032621296468031794738120514884153572733153311948854146553288613099708411068250213465596248184801226714992496235302922856923621841268879311035070420055431550090134591151514753740016023155965232810800236462311814682238587319548646566953746674585974057785176494107805105935432701160364187723665895117568347595452481710042935779496669186680676210161077506076040516209046098233892674273838514527595372607424927263028616189792559807979133854640778096228703820267045642137782273758954609491234796290441869645766864763588925869019045945759391387731694049405774429190194580491834405411080625691118726625501773408438656647868648430631808408685206159427379706905726684909884441023163062937794201538964541612562843254679070710095264652640726205328970408597267510908535129531138980361052608391472273474113061086919800043610069435023073085720099386369290377698910906880748624009997592338241004743285893847841769793875589506740719125741403856173511417196767794652573671646545364605918822249708161294859449996752880871955351219994017719248986858776812414042267829146424454984777816691622583541051519954620738507752272240460560986976839113397188740184941440595743280758986150749174330725711313760089051624286235014397812350179655394938261668499482954394598831903822184846414899808814993554053441635061955424487180812443581766147556352877870234920484304573806389104171327960347362499260948826334725795160154506134675034768929280215728264512490617241415066563516409189793794507200195582729369884062644349756563521548115114878241651091417468530654951660331063135527283213136936851956717331770908632679273695927817112450487708720635493280996552867119300279131843359095893958147859157424793921128933041811024307237316507262709631388197220988794044844595568736909704045093770868756323525350711454312999452335806523996862250545310281405942253277876572162276636650035394918267019179951057957239078619556382681946137307984748807554297766199502590753194314276757712037594017501487971209675384957347003327212921756994114846164026145502834412079695322384882372958601093033870604007295550977733287224867313156563905996502997180788537679843535180652786027494996634832215605101084955897591546276927634829555308526038677361225995269336920945942105406515455068562935683406540854367774540146678408169050557568276895467218700003375558099867932310189872412580258647639481396750709802797752808018363197685781697589267219415650327741193406988254781375871242429319602909963822775408581072462762221186313421878252339222595487231067682717178779948602009119406556911899266783973680475258541581189376078682690783376676101459698356308602665499241812128614760656947293400092625120517110663617967311576943263168742785339527385390286067625895056275684370118235029364183312839129831760017104294240197150983570542352442077177709644890507928616692665242267127747500298666685351396732055699366231506083409817210883560733267412113020241827241636456760501400683897663162577464040718815812751365662881038840976439580713571224915439951336234106432045026631088643811030622999114180775554588403754467970313861814841974572025216029237591105369777467971903076856325375260914634475302944862950709319932744035092124855103501371503315363055948293167604904289185237408847596245214173964151858991950528454012512493017940717805225115083627966741247503671661615935588254758484844786007314936192865926235429395989019344379603084990832254354622198708109849670674727301609234173065242699611234333766282620495204630443204262417382402540276024056474928438782112583875883030556257627290382879856940854698520576279273166260378079674297840120418234251368557454275055824215638564383289238610092696477378868954399417488006930988048169170603034214205070896076689149927003293046736027267698915819140139175340247253585378303111626490750304376052342261761365064810034173916431400955901421733773915220875207308348976459474363694578471877064382375485548179899538667902617815766576169191866883960372141107632142139401008626633724990385273028839636627512849985356327795088795542885117052930197909883904271836066367799237350395843695477590518806772947512260273945991489602733399197791967138746736354482156081912822940183234291935316824400326379139258251504561639566392997539718690198815242487305160971084094329987490290188857670073567386665786499826448837579771818103642698872764571798868568405290266096223457258204410006373379732534880900400882923282766959618216355343019768890474185724783961557772595522747496405645925097157067688882872103110438220872987575401091594365770595252383621385644496891542854644392005524744354697595129403772141670253423145071308124715361371236531580511688578763956669087658535089602485616207882483392244967998880967634661370805418573361415884956064598569097213696357544337938731408367066429778412907674857088008814676342277639469390032344380707936341263102710692910504411626128471475724847493194637064404467149391910749240213714973756680601700819136919334042814876417476913507442685173452549894769717185247799900939849618893315890998519735496414209834465685796803053275280976599243497947445864936188731930598803070450610210034304928445592658740168310328431384081565054303393245641804039374017476454239978921492447244348052956521530144115537778083177969384525872296464128516577875969728124370391969791863718099263396266626950552117831100681537173676918017875147904686446600737254172942849228409510175660445456722329178963948332894720862907499514994388533349324285304239320873773587029484726820223246313981029457527260529846939790794172416685044199037777502574222171662558452765954137905178041528807110908219919271347205930343716301411001770295587043190077824524695534077213081606255117144273374626430245007886446241489473111139223631974659337987519375567719623724997272656440531774203237309095760394145613753428222408304527503708304062670718940000439439171914328195706500212797354462924406063571083104245017229723862830868197038344977617832965434490065825501590713654776855549465732110109815464262587721694601014890299073416511305588505889336526701055992192504585765101383275462302882973898350722542297020050748312718482148953756256048813811357535222167503771702806229340527622501912192161893430890156505448175565688239511372920851024231632016131455256658111263635829890787764052436061461299457320988003115919176069244584951005978844745418077039385122923785084368130510754782580110633426853192718884759188566327500150661687203553688900130316697951914543143535326706405035183582392500196646111601730229015198357921209345292919892831490763642166099293762766736226320570715277445499379823653566155387741396055611232774751083536003070423361911404049336891860910975681753047813651270877728575848561368142602856431386130338110940133048053192647071767475667238234820925530978197151490285990308996469776276085407861239216441042300548781078426223620488543111139803572453203750381896570267991522034701295913566116864660990409528594549345341543470750312583192582776524014572851150429375493132513107180284773994018481501606133310114604202930039905614873123566321015714753280369503417919833530397715339939107669185618440384207007347712533698528327187290478999905823915902696764370323895599522250373513677002133565647919303562472677870251065927944856970256798789518214342711673645920230406117755557118265305618827295255745875732433923282329703136833525933698811910923450348914110907363695986689252598522013819017344666481860133803863071979747856270770636375073810685932706046598194533882195846951030284906148801386986152448968111255969253339633941985454148598915302686178066095718086233119878988935424107647397937159560348693573906874535246070715696392696707992360154429279848289151870634719206356578493356200264669576633294168195035293212097359491961033538989091170849023037511788454760796013098971437568082887560134999643730737820824769281796261464780288653348279984915392597749093071219684461850968710976174693347058529151736961764509219526227405759901952001531672005390706591743554113525719253408228842417665631601467310030884401727658441996730112070151628828182753589085838488642425902469325045969988260307741974472859516480952868280186944143662863875669450510202202979125392367982575895217602393752840441479163386879774733109639825842858974648133349586623443037280338781745735608005847291161212092619773879352060744099892232733976043323580816813303021326043594478831996490259806673574091698456962378093608928729242782517249011977285235392439503240399099135470469378539723086865805759567934097720255585728239619349951629334210537666926096639542718778524351495115704587748426789674621059049030340813549401650519020834723635090493193595974215104367715933185443034813039192227575618541051370516136400028689603714929205249648582760616653072711771299356020628374780781248618016991390257075768878413963140159334407584009868773888282753079313997989425615312909021885106158486446305543110396417529373617407350946180030414457691841300270422779073169593161498563839714358994246701923084318117519834810874948116791917129434816763586517507791086285261224747818305306494994540710326406885465111989927698026814884547909613086148900218569502367244908587710237391123333160956614464552640326869843097974792523361976222657893468810756711853010011956750268402855883206354978905155696094875507386219097397779799988466204217375020614451515432656721429998887193952763013581135145552671907750190971501760341049679029644583562359113130118320174009518972433219877680756658257748912600082912618959323182751639503783531351846985062494953573450071762828833664118040820720823409675239490500190398905473088818102831668900775902249546403808881924525673838631388692588224259394753587042063806652469479408889276063141536005678774996795542047539965738737356769284474871182057862759301283173384835507150754090566122280996350807043615775870616918762531970620821317313547728390699791968463534836045549356484731882331388962226547711502073161010917918192413492429931788919570876943386259183036963320631233077924571108833751937675778487071059997151102642810518719645574874805045688900424315183105771032653734446360963237359448472425098806688572506184727835921143220693232403846706303772909580856764814930760689757896208621460155794524519024673648678295434153614437367372095335641762623813605232804780704037691523949563641397388876238608476498871782115868022009920281052729545064880110034743577671352544744751689410491780516131740248893647183061304377306983196630973237544664129135585812298615498019041080992340357933015996904647760854685733921414090759583021337868627909910326629953667858683432547756099927620684213458985981187881443794599421093381160326633032779746840684016446011276728882730240758595481654959462552809125703049464936855764652579849339322722769462423772193967207768240085306632503240459758359098114313589348132797721395698076464915674464967037640853313335666182193204133566276982682783063349513114410686468000881391829570111567066242690377097350670550375114848677498626465174687619987547990878253907192980248250821371111380188768942349050939342058506743800227578604954251599797946184616400104249919724147296506137712180020632917843514385092718669134427901060214615281918072149926428066165058461161717759115353719523905307454340175029825075653224119630745678976139873073384377445109172099749369559384312742213120825584319838896447858261206745513004166127452047120624604660826388334092323958834735496971453315576280007031497113230289302258108706185951003318019308558582519919918176456289311932937739212894560914765574068748178240535556550254619814795430219525712516479633041265970185381286316126608667366285888607241638336398839982895328266861103516911106594948132407569299727689574448160530764616949687905173994273577015735052046499181760513254382181187862298178290756304232913795823876931854612348106107485612577294681719088185784930955587030510724294604657735568170746822197516803878467043401885017550040476318554851144823593811111236670799256688633647663556806137313244553430391681275155089856872419385095631812524470229086256660069253258512350417199610731229881147123528013671533798761428690410870384050022894618442621518558488167444770492524365767370636772835354771866283064666709520625393467918296882377105440348471221199245085756177483881754774957831214430017483440429738512862112569356116479245371866400364458398348572997164190074272136857023280833188817896373921146705755562182133363494127964654664185328193144210245123296120626467264110773417869996884752179200708244608256363406268717007435631178386372015362927796080057624672371279949523454284312727925180743496619706825865501484469862789868269886893769420157062344097438656804258525554382952994553972225277301155242258877595904413076471886740998288606066755233012269129547348073320130738262876885991203404705700969961780080409359131961830819483041636208893838741046336688344751213790512919204569864340841545594711107225918806540788359764930258444767480068334242199051420658769982717666433324510475951394517719213118785748103968098684898782497737964570754929271167900517318539924738680229750013463083733443412383678570779354064531840963577946855263076137423518426231038781140081279015662682128372174085860760727272981274573533024383470968837794888535236781011811960921685561587414295899080557632094556010502884460306647779652626104053695724142905592076810444130866342382705658849698231597497221798242902788606731884009843242213820058817497620719962765971013210320312275789653269661695886199288820345331630258100154996343392217899476355052622828867530332185429586585639162248687399632018538888313794739887546384161186958220288282132717213152455091883268953590173118050961466998805883592998093880719412745827767524129073992758957368741626528211929598832333836671608702600624766810333963435995429181550987707446663928888653846016727938071994848376139475442279439665031996103644725238608416301150808150785445515768912494535462475569236272705438720124411205408695275696421733512158030275239993595698696956727623917546703375261338323953177279106106484843286521922519668102383080810928110466899191816603274345412234985027475148294209126152597549061826361984362154281514562783256577228691795083743811170701953532749309879983375462244784305181258161570865330321118132065453845695069828623903623331899244133477754728620137388191534083110934830790824381670613170684058720222017608049296279622040514818853138424263579636861381527799846849230248405441629333023073884006193578802117060235177135526498075068176974223815416752369611434718455333694457922527903837497056318411222561088288705303092901446462588310781695362081152096244142741680612476013160786085718291426733295820490517790764223385463022847670078850985602045379046826650153235039358203597053406430154052823437313778558083923324768457938519220186908450023847492368351348107878904119143025469867838941534653325474406618803855244277023634032192544364433044877628295300293504091164688120413213724706425258356352549696462295138121918604791345312437782816680065163725507682630314756381855855472365807551785496359024336132533062773965708794254278254468246304029297726895269968256156569785999280503010892539258642061873665770951534853092188911322583499239949641688654988909338148679965243152571817101700726928270601317384209320198896956688381226755144701464374238135433129908929030646799780191540125611526200231917457018355825522509606898989242616202809580412863521902549784581788836851149942354544515276661193479862945564248770865070004547908352971339612465245569519643657168083838387516834545781349982177287025488601893132479371566904411474537779539440353782776843361293628185130301231151037615282643432502061659958335430100136108753654270693675528301114175196856764717222334765174429703999855141558676997137804898183532229367858383414286669233943051668711918026508424980742865185231046446863449871440385932955645837188281705689988269996167851462786573526818545600601479797619713912193779647959082817546263285550268389954319213772241683517212755677025627172124084826653077071001303782481145603684160120059952801307997226009759675292169794308494275508383973217478211283124703600972232231718919742470215022550303026801632452774004748515980994736403697660342491683456662781835436770012277099954123667528242766584004494555780120673820269183844366645032892374012757945776393701798408096611812229759588722030185118973130164537667009202029616006719358796773262358236125379331030388494491338388742310201755736997028741392001627236243154936156320298051849508210140981992889554150351616122953508259226311542339620872147084705600028142778520870026387871027901908780926824871628521356715812619630082249405462201767828018435253142265891321010688268022138385451257234264437969761796588957414498689030203425477417859220351559106496199544659354768401907124031586789771715099434981420467531769406151288388768063675466858829329739280751014275816817957259368639742348666164187169837983585952689042528462962578897582958489846491270549483830930656271434335948983017799488368882309780191926808875950919747573118302519401358467111875689603234630209492283247561993586207611588488058023031192466731894380883543007606161247805281923189101411555740987986193164749969103808959804470549741081476002032876415231775354356672905360865962980558231869792966144023327270739580872489593027427093352953684038262043954115296333861421950868625220525300030319140464030548627932306167945741323784446350189893680606655876011514014147203156185919362159884518466231200204099560489427308774088283352624400687902805231738616882044790676473752544941710143151240308171260971642973674075938696866067926852209396004849188636807324590522965519360739733519812181100207482249826798133919670977725414659365677256266522340921957003872446222895411747179957687374824196447546972103030543310742601497005588956015702549503480767870629983212790532315710267655696337117169148733013193964087315950746206246058160961721216110240225224304994478701617638286217481677330426946240733535217743158792585576922285123846832475153205427789572641177632747019945240867994657050136780597548233383239963272844501170807867801385147487329634949306581837798268324523203625408686932397016460926345347980509634961351583124275964582300509699916250265546417982142236927426563036965033999839838204067879826413480560248854264391399509873157468788209299540910655133008948469299722962461108048019608232312626688042765904064301205427039105102655704265077898100759819201083672310242605358470868661727039763149169214657562220693200549786339153673516396570027387934179063465040691800468765370493718212608893816388800495439265396411836853418828926491078821517910390792330800219731673611807813976364199207262169939422019502703551571610810296930876835878380732623404334491310569200958351754270992229797475060684330972347492017447290116352049340595331568862940156244502285472546024177130827345392970841812447655102312325840448211880314946536719130810183494786079894013878592570831605782752176331606811851339625176715909363611254392693747246974723897294133487395956893550114318621953855099209922813670871224418173521957212803460808701415028204221288167699257769590018397319888979253035007656523988010169020235171460509852047082460892816422604971878229730783644184964861503316429261493296270892222860353732217663037420662825150876655313352593646190527279471158532419873050137537305886183339090470193318166628654222309946448478297314829497170288241569184306971181795345348718951307432511011077593597893761834052276278020724285009137503307243479030865243770491089374892756242428360111881577865324240109462047467002948742183434794919899152452818443352966852997578492721828278134923898737411862590568562980435345833412470610540788432567428021689930589419179169093501298276284022784231795018209159884683844228038612403945694157171121284753642742670782865345923845358416861675226482591680832018444440184172063366080771349379850227839282096490921812844545848525565581114582695558584354971720335267544163065176386294239010293972370647520496408446121654971477061486135531079506060551713753480609357501405317660492220942961678800707182057490178573178792625064494493972318281062038841017030631566425329192608995923484145237484092677842058298911494771584731286687862833291611196563706734919931265361690797074857939108011703431221433308882801749100804912304883618940403562062312267947411324560169019556943907456156441738183544143389851131068137338715552106369418408222951138448810985379887205266967307610268301806924573299771086920523949158811389673391502584117350995623307947575018589407848771814017608861343016097502783325506201334125843755863482479369183421510458216418034326134971085390163212089195349669832653682882831812041108265824766924733553162360939758322088800817943045102127906227000043006391115141549907692811537573678867237226220773376383296607593871339421305218134672715393711016240537500190811583632154259821206165414672350238356164413571197763110122276318958121520179533775875533255956008248267303085285990992326163077432447975397994731521614456216939986811805920605900076194378731362367503772105038701888537077742013337222703065064263056627247691258196468436523546586319523062930003567599544064480905771777079150796853299446998766970188540361120160512636415979387851567332936042136106995906880086260068592565912594431433867471530036857244057168163359233077694217334198122106745131946623797514915948892927397217785974994553290704913080690781598450327205627831845472005368084802630643731643332104602186294999183367262306197106631210743262067803663570698711019665934074396017966184935893346963735518859881721444828872471906676519123097914555431146770263376927094720255112394405944231436865880150269733201636900948762414545394368650161593093932779387365816892803955682801778324477151535370722902052885489795051923392618184480905944459508894229196227085004710783562158926367419275466617253891700197583939946084102627430756026742874883849166974016731517175612265214777077384813732437827104571686596970731412365901189220164635241947842083703199287846748937877031338717715305802763829986430870322906056848947051963031963820585399813997146439115118534594823730307113979123005035810502687925261042388352339263166564104930133580584792094887082452366178699285716436569693173649564345720847619881156113334796713683798068516359340316932231508656943706492188981364655931564475242671054192194870363435578546817257154393955786761771227857069960847790498409972263891204193005202873423939163004141660765080337331281593907907559310862239397823717572873646563672370128790557054887007537556824121252114588144528066595396694878044020620189113533353856294341655636477222656140833843502602292189263838957588377821824428553602786286880551369779220802379417691306547776338563435584104290766613106229147299414447257760990068234678486388401822450271530390027242298336595658100055401752545039519713385868308431162950748736273318584323705861411834731636186254540432580730627112273196398521932523122889641179465852872281261286835839179241420414970384337914377916766798977839430105501741859613411821009466908359866198480767453510579397804689077217866180607493721863680936202971036821514329511383872238264323554251815498967444309869576896567306297433780511675995954440020867353215328800000880334788037561769334770160194488071112017862234193151922722761908909633272811294889613980422049504094898303532700040292060874959268697908617081017656564968716940581964725708102247786656255722630888909831382390790802930432546173673839863733106424127849246085443808175529218033690603940923480090721330205059517215486586162309476572361534637458841489547101953115388673861671000300508807048592604217469103133177851589379551670277525746698026119899147008979769779406342624613113921437360632813020865115803182083155052752817895780689309760913547976139563912367053385148955751767030098351901924046168773475560599680093707904896121443732955116940836497353021113681838235489714296931903576895598650287311141091885833264640098577092923307223233799588241689426443652427511663643858094300159583409646828594244566519745086619498670314058915531263073143389530123831454288096583182027180711199769913554441319822548763677987008587279503324629324916838302039636782994736846207736465203940816282030686295888184743081887618826130803492428706598149584959017633631551598471139287395932546133632010344480535987981381754085566223029685517483014834767541786051387224378669988289365468706822517380170620960193297604870652431556195153989076260248407523871549935939301032922476098997572817038990724173355631760201098277102743849375190687205200930659086416534125832058707424124292259630696138814226867111350062426894128906076392395748331884832018436070262757131612644325974255366795218924135639717033100701978296299847692336342927280857819894045378572644409595984912675060557955196234618547719132397981025330222219497643329198272193606434237521886130592254090602775205791768852442521394365152781474432822120514648418642022246431761375779652019933263820122404263594247187998347259022467716085138812208130127098009502233565711186021817005978593502813014749484054675885520443373835735386995522056088423561772135414044833518525763819533417366006954316393526675035248921759857194510198468859067710044579474982996543353445951239876347880208200279178911500045145273018833033798865446913576261863183164808172635887273885872785285001173783883883018922885607952281666642638668370183607678587156201413323793011763466581845585927251881992063405591092928592730527772111478010722295135717278775147161137920557273725135295056517997694374017307844709676895061038937656151622359278097580220036768261543313841690897126942834116899843285900353976996290717369984055207079263106320218478702762550959722766159839488028281097342417087023077986806442567913625012993282843182217571357972637387952090087945623154540179643696428267454577101725884524913889692567734614405350135062263465014743257617248625501990693563485206597008584186054717620355179524980165466613433582462890704832549696806775893607099996286477423097525148660480468292951378903858655387687521383506994437066451528743108577694770760774991703004191640739418338501303531705420789969951516868493425275917309507476953296482314696124472954095706291408712028164767172898614161107502628217511254530639769211976456035006282350316624240335592727770720488567671226820908726659725017166035932401948751624778475279942066149798849149075449473857296506361059200685918227382062992102916485399989368799775927660515774213711104449586589283831425907090158924366901868835485514684284181729325577634789630030978387879077759709120615418689780117496551522000622383789511741963470650864682305782306030973696080500397237107259103358460078502931896108707839190595591936163214329759379028913890738821427939672788187362742530789972367996021947888009785963152659636042381071050995886998333783187094536237752432875255112677944630313748058832585209893805895262501642905877254226112089044610091879423139488474668387907186753037149676524791909669281452310922876759227199235337430993903694812705011143258401861871914373477230784691592923095032005779689365445936432421760733413983490209539576074676019239247186063534300483818451681277628268455582193753612434114503348839123342486318869793140756202503332053677855979614096765004903320412260683887117775400195171960110687543992510267768399459013988385179367536390843434524557760321207239137044131810472877085184857879192007574474639897582850150559989985462169082182634076116788804167547949236113913872847460387716213734865876964711188257835485713874378846880952993965899747404706480742157493329852180946917848482822413050576430951107345635349615740710408727840873925108254531687268916143739198523766147206184421680769558352941557675102000808536147696966436017107684374352276533637768586232088734206223080539381743924454787122305954969485961083172013071337968531824593425501487217362725913334278662818568426743054681337296030665924836294711390072552982648359596177218061179081811211330834652308604272096586747231493264421065886046009260661785323554118673732195042574491912375759883487266404974290292742314562174387428625767965895605521852959697523371906163525196984088433749284767292581201332079550510818229196717568623689479561944382081587860954103428170480931133098574941396674803503433508702134257538021345746112629431818160563178865907105527668335890741194816884744157610939571569741252464211840584405694507646439638030456968787829732315728558218636894993010701118188769730011637219684466092589782006804245158998833179241891002817733423280533530532364645147999867231935425890077465401255311985336942868460183757852981345901124286009142327973427858860425382690910274387705307319559149703887474949977275211466796077370511882876509867260466370348398801242413879148052869358368092352176017255361786840599209215258255492710492389499804886285946536460166334604520720662041359123761988962167691092843437711480705685305045110403914318854855781536030282377157355643744199317348746989143249766999267063931488478263216822811365725090357164381921126373574899522853050347084550580219745686498091450305600078081277743418898758081356253779962209426851599369995034867735895011108711332882045583679186764608999407841028649655324993092271728244002632022321994698939995143176367783341979701689959144442029649078954924692599372721095811852083630676923948846472260292023499371672692350628372179174355458353053536807072510752698137589214416945082112603427064642154592435210380215128311178588134354606748861325850714668332290714261791158056785665144182835450517286419891850450781907656978476840747132797571363019552683211874093488006265733100833679378215360578579382616461123129478145872641545627379903475607695877457260050103018971406065881091039138585618481397482984159606596274510607074638248847302443527474287354798019840447703043549398718267022165831986651066203057745575305556194304593552802443738271128688573429762481973615309365093502751098905772892187604485358466103443371228645525229571910383400991364231630607192512845722657806697151443722396989123163144424020014165188853151074942460309516842575151325573448076925901769408323702471106224173488152671288929950981479265439805361319780096784394912649699756631822186447106014086837251691830659367148443267372586607246382578068381234610568408689296405789429542783887142786217823484652934195862823747543994763317737661238342229604264193684887682675809704623849093809716836098278820629919762593249246237199228320395556771322344056130648141142590272891906665446718975838193296533124225187126105986327757452866119292590450992564844952761609011301590472437819600570108062140288522053673842389980880159464039641952862548946122054872587859444923644006585739564145596776292974191118392496792966623047114158210114150525319945541303341740488084589884965031328857323926645535033559910867386297500009831651952012495133840123539246866943958680273075935961107100259387512237972330022866914673642437642017366212430108021494117606559000959662917835494279245527801941105677378809032660693449176499231350334116936629968838446704719361661719177304449217636175571646769069794451514176539042643315891419135792956444389892051793801033421699139020612538755483574373992445039114653709541435749362109137178089137217864944400847197232219681112365459821351791545508647004860476027961972947453503277586088576076267061983247358760410837335444973933037481258504860224194156680656122396419843770022790594555453973591798879246570794525162994639380542806056134632996169800672199589203535122084885325172819894813845010987122919213859500023010464022273983441041588547690749265652724045840406799999823650031564697416101860210842091181831246348616355376653550253107686218406643033784938878050790922742748820789071889993838974298681861015913283661171605500779851310701458463819235271396848160483128782578734959328817997952087195518395601573451335140422410649174651656621217693201200188642426942391309929327278721159028576242478616595601773325637901991262495908683107405900165807878391702708192524811665921210716586403084963865460627432904467522707484910914752904885077188146799278039048725963478503172251808386977195496724383498866184085422320771704598411122758984256280539230091132023133696672502071683045569095423000945394823772311477206115124065295426651514783466679892043852307842777779308905922924086438614474781065923646647265501721489024699664820131740493645629611826668940560032291185162950719443587698636552623854572536621508534675091504026318192170002438690484646514480033615500836820871329217233903627520138595598379201686922529506173131835137029328284696522600511448788454750170934257350327789264430415879646710055986269645833984826586320105286140152609209788770948146042852242090876765413699657641148144308937339107281605435607787023658602378922237325501199381327483595306744679539812609564918796276537048024036870732108825519787080129579657429769812908199890230969113088031018430328940234586946100241647751955868619045829809788608050120527039509766950696664039016381248256432003296788227203760730899652904883034295018403403709290531845743849661468512706643826245775059952354162795166590264179346071779574079223066219373280156327641361514700157526367301686310357259289634808360449148849044421371154685015886218895277372122482134308030059924311088367039638012882944760855943444466191458097581751902221795653996041178832576228440072102434413166164995946065888933691178714440900257044437691426834390709817545797101093180970607328357720291611361941361078500913141500484552419081035057709026151762358627750947992892206066536297281577777144581212885962161755008665020059242898193468612580375734989750164964251631391168232170109655719488318172378472071462896508462389555084400808548154406172763657938863547624619536019245621725342240811986014261569135339397659606109417683283084413107538913483509571576302700368300591209424915150523867744801323082732462463690362507513684475518590914285323699055421154117784634899408987414151325439862788691852148097942190524973995287135372172351904324887077278372324620920629537273018335299092533394553755663871666671685983775865334508014285192257706074349610828032605746759592250676176932260695613569033989772219224895441705338849020621807009180351726509935133177152402372425085067792328696593295255535825779095495216645348068183723016564332548042926944187896858831131372509855084647978837231622327766018418141572970300476900505221336499415794033927432202023118617125014100143259338001562232965668704565715790737226361444411083084367173603632934845581971728515679755325262022917402113003357860307904389908863047317247908913452956563699689737462136850611352970331751685586603277987642872340379059637578286078700380905274846867074435790546824515191919976924941828307287802329961301779938638061163310565835084091614649066305010300573466156380536001052223857876430764489258600101644688001413221769195088609757935327995312542620493721241308010368799429640951431542410639852156964878928429980805051897469250845006446428387698354816270124056541236810882254904368160220791992181494495559904512169045012572586440083367196147022614359992374167394031024673559585365319560324996296876841910920286862093083731937998199354637508892088170040140595069136009399979296813231699007494993338975048611485533838914028892945618957786896792030599479669845982526134339691533073574905559190776342015823083647646108479752523488092562244682348069287046957593356436892817676382737568082268375118974715885343128881242195715982312390630030309243847653543961201375334789412909355003494644173138883286751374779889447907255801097854276385929542996209924329835202669734892484702567240329291742297524002451731765689927528813759077800759245088500256278670371503028977586705416328894057788997725355812921234333905638871529751279014309455691201502558770903390322869552175215293737420488026519310168016243152129950921540156154930687432022042052568860884030718376244844510751296249648113225762779353598264037018866421689670154932836000919662254208391476984411879164928170778435044492143113418264494442247829396521197229851495761752829478348445473661128703465605975774409743101209526630245075592811066476635694443459321252453346021474270994500258407771050840891990726841020940187379400791524201069699125008524711894132268320144424018920891520485103432861513494434764067479679450099626667255318632155840082254128491539319129047685323145186052507241759851205343380616685369963784006123298900524921939865720932833569166402975551853781113640695027291607137693413447191746940623740691728742909490178516737169276428979915296766829607605307843478735822640131954650240594777258359014499811833613835348401650252167410944516552665322047790169492842662984600888616837811670831193103506047292679428636241332379272177685686820380586770973625115036112478345498274968626741781187736042859445675387553195589237348820923545875952267993320197435553760833625548299140732913184928169285792494838329550848022566721737460864815739549035257963432043648912703088051588722151859067951467428182474896617961686212660663696279255254061311927316263080969246482238737711389474696282032107166072066350243611705273016288722439608266939811324473537619925318049587418208807350697092406001032253313414096413276271171718108781165377872507091424574477942524512619918767583184621895485960173756122707980236652207696927212862592928542753587308627292745640062539625326352951562517945775175490738668956500492898839971526524323546754462659349175714144631956237251769446059326377558968194946465967491012304658588414157680056608255187217372532500180306878404372920815637830156331814388113908061896649635576874148942393798819780954562808205055238964395904475280867442329613933496284713217971919002829511196508177979720265131351344020524255958440386642932310507232435101475420474594212894675716089211378720862895921297449727489744143250737381785526990470640144605000020529668516647444402320255614951918549708863689777453343069385995827070299945650567308706335730292203936329606910517017505499012270776886349837329124649763667209674118294027454447502220759955558720292917785009547885889155442817686868214812742624351744348283384567676139821189130792275653539664144069434011621580669735991862775637366029743334643628920500019479743111303582823573548019745415885963667873358509414623709003387500961615239819900623027326052105169924473039024150665746118414119787649359875186325132615969344980743222711793171918936824708176347966497653181991725094296204336614886058459519051360483863281260143870374865660550828901060303243033830439505087076233064970337554760236478565940859112881102651507975004256662630940086283371625541873690454874835034972977220863361020291425235715297422283448650112040084089711457314548553054363134647506003479706296543270703000725564195807555951463424276999851674062151645035723953493181499089138246134946772705830451118439070612179951373041440005320871998226059074007454269085690382818314135993088327047332430732677571242511242847774088286556356441337567799204888447836463432964093835944685483210633990994596074861788982929832140460137584599180691593832766533554787748709507280184413688259013833614333046790643767348331051064232880433165348027916431481147860522118886991375663859743773578176136783570017496422063606990286937185310308755298339100997283307083027237304570136614421004899137941331179053970745072290505501918938706843793701268492708506156665564078881315235282637873125296031728857120492169102420624846194454309364561586531097336451294778769544875648993914568736945104415533893022352648259980996840327102827379754899856624067930018843910621392490958872585052221528376531849412104893375365399068148935937324208514755400267370653601442677740266767169927928897781715638143458879973083762492740228654369299808272051930822450592839217908407967603909789098271936661057024030440743551962801489788868923572051845223673370894224147277458090189425964617787926352844826030139520378234158535258796824290356835856635450728919369632142084847994522146872923892602041586682322583102850386712570943083190742282472454102833206169072322062779658400170049276737253158747130290464869838737861342501203116595219674660091949267414829342766423464089409848426192363431758216176227225268396866512336430025391526477892612924537045124463871899820159069998438436551235007614540325271222200966714806602675304865219294276507344963664076534149775399663624193044673122646110466583257663399901057307433163525558365265612378910518989166148841738542859054753637238586558223111751598123161900008696498595114645789928743525461243853251107228358564175241168053645577117212784772235179110899239367712725024222004836598458858688332632456470795811841467242957359996064499041262305040776567335368877208628433586312954141426806216378337045536448897167009022716649634092213258319209426996817661742968490342369902695770126316514850210043043988777151576903476909579925787534111035450804302969668268597925772348974389515990708227050214035959134535731630694623430663573075424754313445480092302220638605332236247246601955999043214282347350242339671613666142145738284124415365130174744622085061746089632297210331451037285564282485883840579279604759236546284364806882118532155157689191308099434870562796775862921697190113657790484022457897944298641359791240054430013976491453844469020601618956120617530526440891237592806136715692062037742222171064286952579638971984882693397576129697668535229804839316188998714927051297880381695563957974414411993603163505823138784510447235851388246641449815227105368591322474676493769300584643387547011577411528284248847886563367593461407289277585356826585743736416711995552136749247630775626317310505920802344492419797015499459208456272966509705496976354762521173622780160911020746092128883566575181730766242467447159897556205110821491187785538122185202016605600190338653024771514784150803678341363383612020923149075897765739577075522222504176879332299122754839150340351410364902576518269006770964332564895886331996725743559368325330280008567105234724224523634396627321791516988081258379594748127600233649795500171209285144824843859602014184587406081659446203659900224887077342261782439776076366044293358072092831909583635789042437694718625311659546771141263801220903281953011387273607148983855865938535635154048396577172015425676146832372522663723455119816893084044478401228856718096327051275744620014152310881184463925700920197778833243721266367327100093347220450281356421705882737734873226680139876903733897558769238354317821494891569353880664883734744396809502459566552047047491305456449620546174910094889961055809481857179958316628700972553300421318902060172982691573572304543084192990051812691577817641850825276414667564646702025745793484523596222566454564134716287839536117754394477109412408728159415819541172129355392387211149732169874703442390856596273278849612376544995229327193116493889610362696363830786834880820352607330827239241315623619318840137744020732355544998893395372307854549924201705880940433887711059620093673870583377001584745237690130251682825140597744866319835024351720916182645910156435344627801854457444861601957765886161048731686141755966187635800233937886314899193551263448683096698032680515878498002929530581250746010014516538349959034479748141881107469153005753351391933087775822571431677107652986731756804364398796420245359233713371484323067339954469845905293757920710099993296580954156481200458561436085365958293452613370147279048309111264570161170508123830229362588099132637321114317558240008722224516289093670545435444918487455910017014491477565193492166868732735571360910183701293704864369471205405552028844169819866129171429620321116170444580927767658912664496293184262419553604186426428322569878032299900846653168891609900481167430935151817215487013138363209942129521003026598557677490251926689764157315636035964879642122288717369636301548387042513110697348960449413245753226282858102255313943910968855015543030459013114059758576839463580172073144273302555637199096712298149633556851332402233064015002210248592015728355293534127614244721686875963398814516224793268761604110053641434933516821296881587517406838353229422447695368549201954948303804795324681603724475340513536527456160015312424428152952091310365367475411331827618673902398049348933225787947776638768200200556964340822597167355521837283657536497162366644083070409672197420824949238154072779809883126698679039152626072955058050707750500044001739538171745435309305045040140655643648466738733469908114316945800693035666536372658662197855876985548606062175097036593383387038401442422846983584365274439080030738460730839018423115541876293894799400363516905459420315439893528883847943963781568947075661044227552352301690544159962440594832819768752804885681339766781151373880424284717739079183187899770968114470017324692984573912872811804173919616442293350674098511778485706876648255378075765590757172754798879192328506366490521020692254746650834642195405131209827392010999534517421211601216077006842418476690931454114896316762369389325911711095975227224674110774793075553137247005612193106724625458519373601985445295026310493882250115132633797046907238680628281583594097393066994115680478738317961393495856728189549167746986190157997818090537822895152280070767351320243656870927437243876005910084418131813417046855593345026417728235722615572247690010717625086520642268957175127366186645675744416067472209926827131313298127833607198897978608018798391898628025312126936501909444873326383301654600591559526446040147161172430468924997816503512288022108973914731133476229075509481989054648744507456807699162548638457574751081212609137509165616499887352975793609182374804597615088391084773058393801753599416684447679514883446743679144485005287083710478304357007354649271497053219801501037911239828295134666857370121292251135537465283430103763813282570986820948834762742306720095359095542850723305985748231961543792014122714302718483762066088811191524549953649327116194066414228088445470497047787168049846171835867514930328951236462684690143318577078482075868453404830291880223942000506017814743923470692988937046259478572155148739392477521232252355787302803995983527064206184401713826919662643390470672461675839250930809879828646761983137993797034580239290595447722409322970749360328629762399890415667036460053049565473859068948980973465408204913858134921052026654515710313494976847585304319671310559146056179043991508379148304376976551929887578482192735225114836256362857562275972291050910673688599459409366128735593998469058489112540533067384322748705199738845652277470308434637056455872849434193988765284860632442722535255718129978353160763711225170772645887049437084401537267805338806303543116914801512463649407189389710983354794617589687122414703274269455479504944819386423552060565622185930254848943609816154407438210909555428453915900234358207880579430741611889163131851975506921050318322536554863200918565533142298473991753993672093436367990829505136656806973966636752497938721885838425259472343959724018713790120291674109698105214541066490107857172792559745593737769427566683309902828057081723232351816580335638434362760637572010161583326126742910668773847400480476489021430533532220754141277848914547364044368711099960417721564002566489920524489633750835402732878015975075842734425853397615579004460797655779664490502530560767464627445427219004656961682989082296571461147968330749928807450121581955608737695489279015930588559338916169695442981757637372447839488943670870698240212477752487915190311277129321856550291615367898444062934858771991298450443031924127283919721034559801247802072358657092820769338189784644404745070998305217807454226714775429309553337346583731779587959315294446248346311070375054312387396298106156006301255175655659196659303756152123655935679339890858973804633482345778757571343089800057815137540493204550954359756421345613062406466707300569394444802299229472897236194250637273210062623359274637959585605127793044266582224639204895544899825284040846865401828444074146912027011473185809110575054334023102524181027768915403299310188997105915438068841268699958931888056693278649068017651717727141228949348314803286571627521438762082983719909705444170481785122709238500033063500067995595016139455125047818015512344817259548350893463150055721877868264755001851855608727676758821770989025832386670593873437770102821391539324969746448499080864123346145841475883128334491270782126602606011433120725846359474740582927318744463779593817040078227075306888817449260168690879655228414542700365773505919110214989381969026716998820038960091727908624750621843166995257058954088252997974323701285165279824905138537420060884912237033499676490593049535239281824965622943629762028370048849915764007213068334643325585701547196341770213681928647984825630320815241046997610151287037764358347970165213599966033821240537338332894147484350361171115202959270128691403071002696452446253627863425857912944737082889365315867620921101973226591211881636188327845982613318047339538965870205661572284577145355503733275571216799014792830198973560539706993342241155261101107712630281021036562815035842604740535676730032203842171502299501877880577301213614947769993891251739521125208115954503129722288380802857934198758760169372935543265806950184609051730118340645846753820573261379803710998779220495540138351830596147825618011607281455708526258784190051974896319051406933625769430029523110868924622310249389325029487392078658613717756484334094693058103926432844910393953711639359095744605917378348810205300912073335306568839857392557622485234799021280390015403276102975621285664684601686892403160128097120899887713880785689888192600066979786090651595332029081281524760094970815022512430875074069113075128770799432226111312967489878861912000229202175178986731440117614747475570239442269791088185727063566290693398495925238220247428878674280757156346827470817549114529249768771495098690150079056155477288486542462397802229432951472790574266776230925681050620333853831442488825600770391078738012757148966614871358770289904278090755710796260181672783598584149210959894912053784200902865851402101761885626048138107546564619913361078193521252860359335229923824766123383308464620955442704510880424067632077628088530392330761499322150021718747551174379540630086109568689118325461309679534766640439203642536753285037575724481072341274001465535982827120609719473444929439796187396594570228037958252896498030796732355932281711591922956787834162775258946907035022216195236800156218343653081392065015732050344259519542417904719970679994034799238830760088623753334438562657716519203393719951218459707922668982361261747942824916343586805556840376527022872204871332192715724027698927022079441515127033957228360689044499221308908706253849266603506805157764788521255776902489214053388336263008893341860650508504144438852655151762288795552823060982781453764121886627462362122428148979246174095294014632666642883402822226398223393398228587950652886951479752829139536094278140388163994304626279863323667208239131614881624847094112355737841013723637341765953437659682398194946795598759811646938080832869041832630590479512946049881274841925802205686247730643600572682924236142706574380938265645350669005770312955903773013121017606463621822087005217173224494516912070514719976541675343701970238828540139202003417084497669751026949154861052722161347997848655307817082342742016721863415540488055912121816489631475017915766274852853693505853487008909164161792313573876353301309397570280483743751706229060419839533991415387159263721718886715709899019851278170474248136901668355884826768215173268708528902472767049172916643726421716291653867636442149093972641459593234557214480074401735364603799602479726196428141674609000045629613468373251891490226720472725567842097051927748921449869739815548149456098873173773547842752697940754685212658330471858411977992013120396397778876345648771521331059539619043356362438281047574986265109183746106824603121331564775954713880507705788156534011826403006578331785806169025838616106182321548762599326289119060170924600083410409281584207433683380344727792886342124287644665931835417723963189793497131012550945486588209620367632255096826821893129108098291363163338605569353419402738699038400637541110648077578177693867584966222945906772843626625701501244014581781218524854720889553929437251175837753901194803908325952020715857344589901464106124844611832222663278037340552884693247910528495560215444412373538507757075682324563351505669789062677990529833419238645787795450370282020036342393546596192857376319705283619341263881572071311983343742008096336304674419319725871021446995998478848450727587270380286173243502324221264206369624548863032400782197144152171152851461104513193995615076578065347701259644760110890857289648778133271640436772723999391120613714935018458901927004956210985197165099531736181014210401809073234158652370572843637377667791251103838601249556499251492984643713275699939493850968328656764733608295713625596833695702647827663632499449383986107941498717818169969637517009003386559348994619750551181193495493297759143534963498478874864637825001033228525329199931670468060877407463566480240776059685283875630003605943947689907658494413564397493230572144771306701286962954281803487491208968461552176278327149242020036800383540387462160318118214583465543719268268438491034497598181571674747766936785519669326133341637079643102260406279978101787357074983461548996406529401215190716823832911587264960370406565674020731217869321766448904767084591508856148526482339875366926510093920989405700956356152180314970443463925962135087444231004578268019426817054493490491460512903965482035868051207281174446944517668884924183915586893921552495623382560364851481057929108760220858564880469422843520900928459658073731572123342019383618811881095612534657877736499371111711421408618378969929268423775059662930143159326417354857617833166322859832065227846207339872653688847920612234287275271673590408866915922239392496884585143530971603268154390370677789653789633577001827478227752204515289219754916631832353110980564532198223350779123245718127070473836512934369465191215267029674476556081952564394867034972957929849591721957056526729337163685269238429037377576015821136694473226626172878672240974970307414781340240712610717446300339161087375453268101959101445706902148397196340090063046553510100275567765259983496889236070319509140930818421424784095356682289628157131276311469007568753811935302564539314215401831099837807646816526831201943577955051495974488012512850042282640320912217056983213815091597065700669410648536344235934308941678542295678391673552300545268236625941154831440727073732797705181542251447558219726225129511271901293676970246947837425986850751512327153034741591030949047657355949422563834173945006437014686830248820168309595904335637317245731876108270415619297684352266592420808366258037103944106169813206579004973560060320799858023247157810193848416887062533266495825936206333306544147903852129408648280216515175786086651992998336906816181255318169708459253952192872969572557552560180770328325283675287939493731974665658769719252622359329914615012353535791351460673766907018369323201806367829780530732253580250674495726100067345186631613308302984289697102451030944822427368465456342379484591036128934733276339619011702820859479278657078875508388805910256398594984522379363310026421628618505109788486287896758411568093791259424412077883327495098232486595685434207231434079963384572823929452451319985930705819979103545152310168326570225297094650242244480635552928178022798362221223341547811821808765841372515936904008536164470741560222994771964857698857347931989186367613691947277259471743894527372955742466969929295688223776201612276984044910765827141929551816329753864277941515379612876340584150588366364166978462478735922471178824687974789184147791777765572743310246257176340770510292542500626180133852448740346009167618567769570670306258493926235431514077043080702597028008508152944685900319330626032820248497830140323082422554683624425888019479171908847124535885031819559963547087270125134762737885400142520352836602895181541775075782083366630781168871011976039803343577917931919270143892984326058511214176753106645192066300649420645347717000194181009211440986598613683265840873573762420889883011107868514142446070240112579523571800562093512313672659571460204476848439885976903824621923670884469359050292360694210978783737439822186466540442695101372886799484129875639359409448770418083956746278383429756755623554260458599828147802036386787537409568141036351548933126109953202225155188308730281597331781298911571348375659144493065840000285887502995379547177271789462142055057450062053443420020797314397309956364266851045315727459591301827438789875482545767211916079944028383207116101166811523127336158399775756201009353322782952824626475609470549958916986492643283221240378918494247743648786782043429494092517418387826887602507890475069378064561703778597417720750625111750119789746512709652680704079260157763694213892800776971720085521509646189850437982951536555462070902283716662182619975565619522016954521984721071326511502753906306176692409629502544103904623692767725321242268269680952737436419346239602190013191492738676671815073532903828654348930402126806283993257128598290090285001551280459133912518762477739198063479129932379477491445535023466558895266902022406013961005889074227889146690577832688649266118445997145981328881939922039039126480538710706660382716021207278996252307998987643788774180513140194099354301111460389908506597133424331213863286689838443833446951351549874177139185644950042034520732732424202886363711067084660639047677353609796643754708811234188216759125332832742576163392868555127199461706509587245009121181685509401842313817364473072796552077357954561936394944538750486080376916425909042900099447754689025455820097126859014600547959785070915521125925963985263822260906735399408251817545680532756059932909787299442400241247772360160228523849344231181776093090383075116851613493307010949135717295388401347057018395020781765861866127516469322835691624484415510754909461758708718092515965541632021473493360201446468247033132103716289097961784392298892281399835155055283965792106041757432702667623320554011261195811961097139471880800181796032068783406208478986758032121863860370597817079518824714794426816228179954186478559232563478220465462700768643712861487980336340106663236722511168519542381793143057112990979988781212230126148650785664233214118279478261613671583646612868836772130441503329709825753963428507449465151495965146106784595410057520317294402631391833900455075818104395946703412251075056288693649020886500980952789932703619361981779476034188284685535522479179769153215965690427286022721345039068503766098777880263208739046750525484873911812708104352823498833808779684980406811201955393276712647669475344052388119694022624847410178248743641381758457854258100864228690892711328419318552623403870268267763492915632749269557451993902920001405277326045660820867044059840397739840527278112326182039354344481978108948845810141366042860399263934956682360116664756660857598636763635645006331549048931949339505357862556118884176753584999741571753170851722630159142622135552117848359754727620884040381227897252362048711682485782946493052714040092962209869989549526718288928903112264742548582297973203689732006745232153143199170687185699421276487621074968438394357252140878315021059809430343507902930807429631188561291754093259808668704242997419126577057637963922323629614303872856328142189914876492908393176740778295738811488104188199623528852615203221133535935216615202415106588668748323613750856999293867316968304640736993625308899917642397120393344215241343684922633726028017620604938277607135581115525431425530612781017350210272256368592207803920278334593552838271475557076067729485759561067071995044581140451802006514964472462934254738584893688564671331367142340140472868198026356628485456475244890644293854977160997628938784457971390176166485458050606496287657048164363887575978710068926071442345340029299152967598151140413690606601371933679923060409839384011497355388090952084232591125561574264355011067823411570744730411359053307976311155234008734999009100249674580190764558263756536002615519656189882925848225098677397313286044299862019524686976725607856161834993758786410117145794090369796232748050867465070978116404566182682891333966338629024145542532647384886420557168370855238947412992822308427023116746561642344880899896190631718077141806457212236610774177879453129338959628068031278459998514470161673007948099414487612749554354365734030012701328924719033839652049167040892848981939987038353902030661529371707259631566303673428010943705195835811214344122619764594836819150935556850819103632319149828658078826709741322470800218847270418944714758967200536548620827195162618269122351158273293650307218083814003369636032265054153508475926307996552176836446655305421221674020338912385513987426965070387101215468040535142080213475154328903338726824355210464802771434242083036115837701849466183348508007350190792347349122638254697290437766705502014706948283150311291395726795173845590275533068989463980605623700332996013279261056642826178934768067820865767116596041723501549472713479516590737170316528192223620687092085616430753956288821954033940005125165514910198128340536317323945552309897072482223281201617342723413505531786454758199305647065112597558116487879372884215672543004547128157176020958319312497134620133994210210958130876278500111433579291289258370155815317925511429477475132437170411874989722765573397601898695874017628776522579911190693136997923369967089587655202479421652311494493657310371834877962021451880165488554185418640268127055352341845597495959935963466234692280302792095959318621097757405200894341795479944563033542255492974252141283161634529180447195096449163090955818187239307713438680636246555576389396860024834180043839556680646218381378207732287176701250918491635855629479477646802743955444904682267453085084794534519977216310872702259449682387356143087011353250360090241758988219702294217746852284226985960373330154595602252919613649382310711511471349587495913687511890251788886333476359113897225864104261798489792435388690572361442300895052683045345984636210200792342462405224054513317066550500981989671171191376120239841485517210348235832469932493217120942138686470707890359762245073296219334731441585662583028421979294541060790040703347879763658554983624078232666054846474523123834650011484413249826046742493897989514718883761800395515339498476840662203534506541589455039906475794360274778394679677728101049956313494681216869344285547505707258186218979745977064162017806803621947224326258884091908396211094392469514549914177074147390076427501250321476389701343851332261501752994255051446574476455329806500464951556631886844364754623316279771317617990135513225922127309141012526542346554429159852683479418662481318580468720027925112892431252057421912705844006835378307376541784186255672402592615313351337499077646193577672276352368676674511595357829027631402398711206780274710937286051531291150142385179259045477400458423702381751641659041814341260448748776760273117486567223729270029421503359630754267453496690444006509110960630350617633261061589543051333420172379996258981488969839296245756088861095823308933594905132750173007982106139595032207717725978675943144923686994792758049135662306765483830064212977183495750553896808873419499610846477850843925446184186545189074388080126937217250444478089563524001618087376174869374588197258542942760605791489446120596996575365026069370010809488227145038591577490937949511032585466294329687326882199031868361876082209118425365792523858538940976063607767819485655343795131809188931019505205180542865780270351414413529421043537307223542488944680008577719105886466579933449309960329436264892111591803890454831871521362135094875691417717055653145407490720786368176672984789433705078590705539453978479080030887443785908919253292460365980939608695040286787130377607573998608056013762963373270902064307417935302563885153342125941930307440683090279355892452664078247696213319444824968564135322796825074419714311136960373600607639481267869065602432680681823057758754382043420734734280265415880234385285659872354248018650387666961973338120037325769604362273632334934862623689480447947365172443541277860003345672661596218356504407363085548677298721836220209241378096160263834580903394672140771926557852432030564691205191382147876292814064668280735970690518804644686609314445159556768079062040615047420327732125802427952192004287350583796700437391904856606124502014818990932728109908632152083659412603795283480059703853315764618602180628994974359559517287090619166593509682265575167323422813952582500486416883062257697610385436212925561346352767989768341642872307753257173557389392560549220450781757177273710883597876153533646794162950463808525090846667795559752074794147506650893628373277890566820867642153361336565521407558678790728607708648714089674252111336270044349307436481249948292721877783993596593384017747253621731449392366286867845787853026921819398331540125484125813669981293265704492092942562375812610969041429766354851798790018405134774128838346143988504336323067982396038829011768438436803085928154351923606237432955531945688743899488365732005061212804097188515023102647506525084153626376694453294733968207267660113730832581575036423379939954950686461607768946814638684496640588462232448538637255130281461584244929550896601660436306253775825385058838001855645457145628919581294046774693220623082905222565965093987349973482248770907985428581771521103475310408641862151007516086689750645379424818648609943213408962745931572724149138307600416614778013555338612203639603399166173434785599860584777107692318702228876440387425234987272333768805328798347156728094808754054247785827577935429714533889815691588460142600926287164980010524138601297974532589038128778714728000266538356413924753783996919834576075329557279260519435284016391708196391050918331410511338976221502247562235127382836327712212002625516267766766562633008756835520833172104339372486462879090194971969648474259398968490023876367954326508982201987505797268124205729434380075194692464346545448730718777487610170137239812136161768550562531192885219242728374767197301053422479094562285605394156476406980080564694374483267065845381272322850151792141724297728701540750847217456068015584993250494193037655668644526406093184406024863284197331386380713324824267127968393077487310165860136839818426214800341562884196302354919691304975899828649096631482910610206493316095046693106284255306935695835842965664031798704997968396874115238249915954447380056018078199330754758080683819829651057623435511113511789941247799793785362268384695923891726079184416861904731318378454570938854113267036580255976741125830431851902734956333890123853116267799087537386646972691410402456569614657469395113980870891037498187152341870560177556205238901003381827845937329627106283034935554239341159686485546290128286214126196633037365236131000068852168575400156079478417469509062310913373569951837461621950096593386995230024755034575586016834161132988597557789805091044596266511208074326965512483958843710285782882940597892057860597424155145683483205281362885743127278295947194298515897253186181726484926778586942571606059075204917082921301813563285780868518570664931236238530031175793761772850720170456523824066284049970934978155576659270364940562744623479842659258628224964706146401333140429043418368052174382913830762646302095613709173450853044869168188884348579415982179863869000765512181437326624349235923500975131065167662979511654213864410395225649265130207134835596894379230536888408484657831865697428614974508730382715523179735423545931384383177637760581696385780345073584392136766467085155881321919420062118881202457751162067801769577421174831130003427240502527176405408219962737751504516542986706463733363175073619795637308630065543157313528023795289869484278623822834634569846077978630253474044264263034384983871758593460458095108842400119256325472207145978470743211482647472322699207649160172944322764930756587052148120359868082237848497428903680781115283686547675466037045581366895975393487062262509765749345215477341055628616734566589101722546989207850215744569730228118013763875134014238108567723962312936222897021548183487533741833137615050600816481179807336695539850417592908825548801112749499016723449652035639439509168958485626514391635001056618088031492807659503655204892958333070237230097953140881179064774320783107280132191317364988766636864868623128689925741456552432749687001783885928021802624714918508580445101058437711883228789943603344912197196781001195303872120289374986019332692560408249874477922905772719392658083966120683842999809488726596011659320622014801986893619231813825895261947546575841798332258955335738413982713881593015721883664213748172271101102955902867239384732291610491495410622374666481757673831785822049996891030206284815569428254933932897874912545782994527777853812190956882063740935700998819905676268154854472031581884931026292677523561072060182505916206028189561701640724252701045281196670661634038105806874869217176000050606978648829996568223122529040851995768386411730387067053031271247355930349745882041406954805334067437372820007513069153279411450343879930950521349597702595763965884380184633883908888426520977080713026471940630365893583348191838632324520308704434211640817955079406637512940602690568620466358693462493429478873477756803061167716268927499139369772900851009380033600991187845081495177786545984507301652986839453754834604608218009442175407879330605248365071926999693201111210035936589587093545071343369061437223338056595851634369799230382442750522450383964870225334646800297858683773644052012991316289547824042180757676648164816512980144761722789348058495517266836478527798940162206227240621425495522910622481739476330225710510026569074049586539766627518519495494980890156876412723388072746102484453160219126889898275921837745672241175007435053918402519809169211345350834788891131629993466527370073607273682698326358813748128857061990580781825869218476946856049933697422356141025582816192713432976530394581898701184105275754108674282714288721374607113559534305503088496427115311664285547393559260551610720197567484969039828099354018714236048566220293242554391631111361174589904501315260117925933081167308840937752032983218711571161332167039800857629418523505125858451604216684465852365552774844595079830167791756439427464467943828114969181661675349202398544722545434459139081982828528894611417543742106932555018003096956061624332570754451570743985132565838765499080853550891850043039246418350897592743623723062716731380540882293376135554561851511454264245096908399630671009850986332867429577523230088021416876343118217364489426805870276902202899528610065926285548304084088698915992627232732283440219985516931919373523904983861105824411647521968911269767648643499862511041022263996315611500815840433340994588972225972852507579877050958689319144553265715618685120583716205838191032444954801615655606762961589024038653740980052311503122774846046586370945305712755059686225694368058851417599082953046567420630408025704120674347713657271004187914691425386676410318350981175017985813472709577362371025871539811824840862378336167322014643141042196693883449250851384892747244205774263972061893662607640081926157706457746086718502607078516928674092290657800407594934237071131688385480004041940793283512316141227601623212622120310410471692510827182286894182076665394671464153408276609721175514202597823828192815056578851036431665061558372044739889613438108248398849209882834301986367324016979249239081309583770511947186089845123237973987591701114682307750157306377158486166867279518675599573264686714206217119837151957696020025865262383727393508708225505908599093890127514473481418881598709662693448195883887993926798126547816001195197383889676689850835780815274342861450561862275640307455002674225115881446457508120774256748471561252049826495836723799619576389375550797314030818380006739309574534831542248382223308947367161533219497199947458111726866443357962113084841862958914573554662921656171196590661057271977572245437784438078937237215658050404642567524696077703155872576185851380477346840180097936795624033830024432412062581153815185355131302998737162233079359275690540579008277610168041260928495670045293438904344469095537114024739906566630548319714701381880079342717736356501072986533215640706579994359268597828975988237356834677188655849449240705885064099059629054679587742727177829082592151347771160578313162439798477256912488596157911177722510418491032130752368688964544965123274443820385042883881146870959552955315293268705043573551239570360516014257305870438399302924465073820871686637281882859012770992765338011866965881759610658404150711261577443105736433679603710984936122995818706322804020599675333589568460126324742520102761320291164963201391719326549056500133333336279857305604900640828669698618249099672986331369130720427007211189092980387577871976627922055686735897164080115242084485389098843333925623069622607218957473367254822039406956512400418359263662379651797935582108084281684756317848540212192224850071760651791363270410215045924467752744687295367252095024258659857451150576260749699083350058715449945767352292492670595392276394924396788978292062621772522286123999362356506118194160270718288957738761442051023241297798930875591069057339682547333444564227671925182798873613231856604072702980342178584972315336844743817230287473717406555245279446723188193338720400991181438878453811761885242175769580837461044958877682097976091263110022778183543846420243884511856910759715327294536146240787438890590818780687950636029916975346037303730362237889664350391802715466542586248503402792865934389586039852317571185465703544203043545233020101261378797757147981661317861996352743897071500598121059232542331740793723158398139189722462922965588488809740110213920449926936553913204239235963552153821357054525779782710120506182695057024936166704923198175150869784291298627998429957443181595581765351370722257500997880410124703713801100287262262727341152190495711914642565372515085777177797903742436088843496779907139742008830126824807058062739110081197404696128146433616706775925857381465865096818101626010798349012219163857426693808798914462341026365735822484180761589880507209597876371914601957183248078132208234535515715467725514130138434017296109990769795527138525930480510525630817527011384764286154714876833643071718850611960126682070231869382541162295760968892107723464718281634546799808062392996046615017696141733746759971109768981138753215200258994162779531164817612744066702923632158960262575551009055848124793435713189029476514373688150424917357378970213572734939679800786062916906877362637155951723165569695811107425391689833895275613517537746933642680986925734615479220734853166439112843815348273579158483657470729534024198286865352059479562558392549688886441533461582979680674878875368788497892475135790631228802553632950200662325745794646775453213669676432690362683849812546149498955015840900792014278069268022589122978495498413391491184321178663660581967538550239283015526607848699911409371162288860479655009496764983930598051682510467482881664378895313095574417178681690596948858354570794813921683963044946192391119573002943946581284575751002711342120388169467399565261665976989874856124641982936519544207696919001535044467062348848686835757358368163699113293483890159037245196872657175880451963821817657414470226107235448707454801471438247235369990717034253511898342373747562393036866748633301482960098028615705160887522315985342178469916658594866785708180294709756745733597798584040646108727824139245414191522246511416494169811812851077780405732803831612177596752485723926868408945100042748547984762032669512978787146673778006030907649831219113754356919330756355495803992194417644303533600234527058987693170098800193250321298616300522384072037945205810005470970574643816429507949450546838317562442216479948624894840760840703193069202093111138680141742149686036431309278765732727765067815329616473795877671650806272547283636190486718500860573303285924738597364563781963769522638452077609048046964470391410273540270096240548247385853360646619830838332261720321348320751668823798379737389826532361187386998765521852367282042647078707091119358613859277125442846841184816967506140417775715802095105384228190701806677801576192958120086763759802786189678918518158188851105049976132035118497331879573292218955487876427254037026268482849190263153013064251727670994878403754110047117278370775405708324500552597988654740640933492049159070803528923909007526410056659714661204437680134638899210271840604550607243820430389621353185541219034375065666532539820929055028156408022995889614903651509001427292504316600383426702545540093367491691016001602877363918641395700502142294977792604374236732359573720784028816249211629653328510262995433357813786934054258081420173279797037381168811523253708586829975183052806648829025324408121653608983369045389580194000838618997257532633235642389114244816666779129440637419295659475582666088165482764314241055210520558679155304344318219661389296613969461762473916629635410255100163729358864350263005657114925106032398389238615969748133712328781362168141702859637724525598666513275201909285441603731368153851324175064656171712202348647851526065752971109718839088655022973521585314854959670016000752631338094550236521963134511705746220661361326146574241241751402700130318488737350235807792444496392007013887515728664964766929771781261131576539380788548957289150497437005933555527634188810715568435093360685153672287756714820160441557578434177231933283829176439088629908401455168473333312127113759779268606127595142710610621833981565773248655524150256364301962795259180015690727610967778135301435499905468851536349483421603094424931858664863123316377915260007024104079401230357375561744441711808099453285894706005290643761461080510869556849481474950978840859742151419312743716787731956442718233454996012762591478539892025357591163427407124374208312605884880459383886400625484846951540163844161412254771059110281249061896592849195180218808079643921826445374470240971313257282639330352697212904550300060733730936230915066633333041455437097368128389918537956139442277284432365300215604895144657911646597866434780783268755765677612878737665318823505552156844954930290977620630132592696564099028241426262323201834818600071483205603094388804563727087523887611973049960786734682561131281793459242941170767354680536272837441724692740962084223126910188587893068765130024435525111193308631019906878469274267515698049640418822568974306887460065574997248224584444547741269757628999652415019085619912584453799379645704407766767470634178253314065588606006269653709378470296369433564818001490933462373304461304629063448232105548795165014096340770067080396218348707613171606263057167096696943205666823020451584371285842407645910989196439060002989978271337982145768211872280093750792982345092020744230282728006364606459467945232186622545491153574235245709945128942289964524971083504505936225939705723962637303735229124329697850211038073926369551841881347311632752184957577207766773197892478199188787206860369325895491779564601756032800622219798549092400174499998354543214680535803651686774331381476246651303178785891702239028211805005083614818727018831791510559879006167456049617725897945536168531086710318747028214371118348127198508551964373954076345555960728656277878975362250667876955228215880040281806000559921204939539987042295215508019355589905146574505892947389369380599719398584626628169118665329692087556392643177854363197226455140890831983264703164342839289159016688950503167322807163280837150335732715022005950826046825268149462428966512316103011783879176454001074722049808998006545080015388967148554753617027138051000564281719766650412311976622797716867381789980372435169597565756053245079586199322415090168107271602486217847098105274589622780884510457488975028939913495255074314636912018007016030674258571292065769582963387253623066465450532709566403086315339441929100489845327766568575657042391322092243186220098761792813717634747428084685137161870100701133554603564142271090159369328113892791268426320424082552204999634769290595999298736438836860865241054577101431243292195295741675825930027583532779618108740238802562647139288620323481427089155331095697543605886203329790291654623909884448530347157794107569893451504632039238243979142974165324188599961136463223176315187445935796559257219920438670536150872801991295592688401769057423673550206260669064595729865048933740279276546857739625829650690914315632889168849752238272846064675532047582760026726748495027967820925322228429447818984184614858079500095746488042781320502285861525874155634054880061992263667162682971278407009098958079373605238081731785017488998513176192878093055207330963067719051426608985363462083755582754189342307903882532999736108381919693637346905899910320207607076293790404383005746356598191929495644634386715364300091353263789889380242229614719033994476103129400692233202215569725374641934751699348785402727395891835341795705377667283892381069447257030165889308765159421087414593895770951678743467468821929565844612932714993668315355149048973762569397341628489912621508338432048984147136356724827784431868323326738342708000875834853249432205352106776384546060543428837364198033211431665664897412342512595867265915755066340433276712215173995208448286788845141350680620319663864260354660299657872742863387942605458235172278736315528593513951676948585543991364647427009364129021184320082742429481397069769182358349294807294540164980651391698824730033163006941253581310895505056774889110068747757950948167073054317606260269518696069061785281766006852127801230061527142773664260029385143097551282894125675159666064866349712509528828920283342778838873893402598583040728384364178348744533812065499982061498649969246814148111119739303079261962044689252804886172168867150483362210997312853367119336868234539232891055368049907625821033345547430724609397028747060355871409227831291915918040136613193021624754841454137485641714955009075042962388986512784956798148575997429195862922739987958784873572752698126157343713722191792389880826054403031126310157191555116056974286049308565117785145184738946336612147226745183607453805752690623434480364111295326297041036123547618409339600803174005435428355138790073698166027080985368168099230834770647780805631162739361727729168319740450815868439307969821736387703181661751431706201507688167423382498897146039056728089830178977764665192888570085870195947362129772552798042454710421474448316136586771700934796267060055289421499552116783905960643880597835437048757302513722747880205951598458927992080305576380207681684203809066445952265905938231541288932037096064243715270902595252579511168967900297981322093937797868835877806177052397187149882306057462184741491809501507591207397974303036589271176894881093777282560012670598534067313117188961614788982989699300088526475221712171911078984603428884194159984670844493273223754604595115666741381721736529411384677818327500603547213779589143311731461711552405087129092608775626965940941231972926131468180144433338921814556922093929824301586582133025885075902305976370372135483875400330644456664555742676284304080982662971562005919097185158790597803894666182445545486364921090906268017799261699271337356730219965968944189632565057666031558924125987935957493979208928403406962485669923418153274471721655517757140424317502897903495336312603402719628012996433586167309971054688996250168767583057883119060318124411552039409117317163198875168135051095991508845543774796983976545237588385090737170137187881963575061444088299203398273058063437265334034781587716810325410089252546220592913684664557265493440969278954039587058980389316451475141166344188404264256532294724350406167781926981990397224650034933670591688161395586836963753660754698735390413589153419518479103850462680647641814550005155307752503449665058995407271243449510659655749474541867756903038009452210583905008159121718485437143466624830418919125414716101081785620871729048209285438254921215103534093098107040457529557495312735289453836464027610129074814028840606070790155355454428129987471560539244991703288062583691393466522610293108596356535441792598972375516709978785591230297657731824301224677641940872648107956594440380012831593349885339441041827829889298337809184575886006138563482970949492612437258231871345058080001699242823144384878759459061365500610372829378052113974521155839347694169105995952449041022986594410397099405392389384337166469294154266994293124095259493951867155304957895652300298266482034737583478009146567049582573699813198016375628172053532271757258362476480738127889073988842644424316906096649146457526059694339362912918056588140659175861322490465917978933717790777712216499568653310244352707967571808264194066109980161552858320590750524625156379483359057842245248369138720988796896817719131995226599821795870425408632682230368748206597441642561661782600452634883578980540046095997139923729568112478968310084634223296793937187259321033867865210012930287890027396961906557275811857927629485255488072673791762466166208546930072629748927373730172050225248793371605086367211775509466995578926960385028119376840983963478638626608768270474926328730243951772767259444514174141447582145746683341941736942724450075985103522980730845250115544799524790806264858845765266572980506934951261246486690275465319716710957080961933947291308198575291258909222401634113953910973454479300953993632652961435416653160291047972109480959637118094292833280005449511781525470866494049995783754743654834467268995867491900350496924540736648800441897531666706915032049576404016845627526801948289373249162812656039050696845214995686555366364635971536485786005083713322393883148496654686454372123064324125685741972777067137793163320837381216248814226857429315890311929540895866854616692809181238242676197643198985617813840265799543079146057551307722436299210714002271947006115636654200732837867023581619533017777993180115651917756768465513939052591276792439226244316997086309156842505836841181461039483530281137429519621423635965170097006389471984897240097029980679722290433099771039915323929055794755774802111715715983806231319105117822796929385396463536503360695959182997011605447321771877721444055188985979567323562667170396315291742176188149209411428731735198953042664388446604410728250932631712398829206973916289838014692034382827032838647726651469497545118543967957074217405660349198793048406167753861927010647989917103788607042377036103645767011928311952088138542023090868419152978554144318674375045388699639992083632426052134276834492557185842643359440767721798319795884469550532657751688696228369922675726048622193306075820791414041744860334529092589328729306862332023171079418819815736723796895417616853906383946080733372813464296686980947241423644817033095119989127080514996103845043277882370718646753685165698500063662815236925116423336969576496990874204131263221491149530974713815069480241743011896670706766977043162208785682493646624482133157036260726983747832256415426057961422919342638131265190662037420045288758909977302359212358270385662290979187191630230782036374067801994447715110785463372065507696692584656323439428494714243116692609337754078611545302838134866756256712609379492676185316036606093683921107237008510349721876868916516655589477263729014124165032918249381388615028278455714950833214731010549201143736087628797791247111366245898906200858120118886879611456197077787777275626661548838845239331061225432056746001034575451526493040391873866628169182945624356824106986350613947916778335885941111980359227999268819605368549278705063301167072798033852631558471059520239828720805334679909983633312142954002187947083319310783477738379677904896822979846931018919346019438875008730557104400424868402523884887707439727673688834699042594751718717741364873136226769761228743992019865815688395039224684667528069328995825790238063718574100793686107697953506842857797472147364509478866622396676434269328416591265822833926231313862621164794507330075542460901160022162594657671208237901450013617508723307148162645928000110288441669411740733977447782587088905085799773842249375263858014985398130129046671752013076183041494804361202729082892221402363722516905501408143214080246670463803678526492474250328711224910631500941976190129972274802113134907298243455090842079305197396886588766840424360301809158664339005896174694165281058614902508719387464870498567271888889270781814756172971773384918867800013658029931661221228586739216423527783966091022705434830801805203206342742532762011778181352101848995002755335390517021716400780896876724538193483585787747909857263128608892017476194228047615609225790096687671985379421258965003229787776545547457587083935089911546953723456798284914900217221771479619667197341792744128521911382259966203216975141496784374479289590407144257554151442600816201727160474593403327724567069737886915005258352224496291848887060147666947882321456754328079424168614247796674165118738791903947628084702695518176618797139821781466403154172798107223986228677971543958864735716677313958278196675030088994804986046455879865528293034132941378048640519043605172187669085767434251189345939163111335437999807237645007798415189383229883080407639779772161862007469517053770252304730433287695853173481755068556171865485751670421104273512978804922369973719975952564900737580556671080730848788730114699653399483038506906229318178144833386588551698837234112109683381133005049877839745010288534183917522247905816899822494303585692853092691360696523283786858818954212532168358606526739071552487776523700052121386555821421955407094772867989714137340629803668503575638837321347403571051480991664978222759970859780055465270489489541827096281296830798552221255475288189322666381212141102054257420644658068525835017663494659076222263768852921627013734026378673383364162735983228038201791862241177410435529087472549850668770681514105251526172048190432192405785610828287251689517879943468166985457226080588427466859452237527310003619233739295209650426704109176895654330214450790250682995508874562751699870146312616967135282102888052050428338966300917513244743792678441403510683705697089850986397670484761110914393602389096469346324236603545777955722283812722737559467645035442243657769432487514189134775956635078026244142781491105613180784653378034426770750352884404720402277478972696505246915193199948231737247561279725338389039419384611588875436651087795193399836174639347395966338865971624467483738094556700383278915169236475286443340796274020207773151913265292589934566959296951020668884081208202932472343826303730030143441532375826944749870189758081518485967379287564749017717922894152232423335532218664310528266019700242510377918196064143414551428380081706003140526897804967385519759988151949245209012422812089863627565231937922568918606684778490957822861668127516290138978537607917675338784800468375732343695469592455730462738887242471288003387749936513387980171558248624860692782351348157382499585341670214209659427027783560043149475318350159232838689847620301012588469123011679265052062297462745277626414382574191745315877359527429969268121299281385710984311940275993234620763910767331518051264177141344645288866257065942661642628710006677553733155107033115924555693756678375952821263215609187452975007688296898717216894562673086944025486224165490804544803220106839793858083326204188525577214959046275272041381243749249417158599119937340939966745812429889948311118478499189514269860777398265334347042084827171115905897611154140069258756231051454374903638286536100097458047183820661252533770328212901163523991027331945700155010034551259843555757396702132076030128584628010764412881329164060374147794566687815902528046645060484642675530911027097955040444623367968332120199861825165300890670071621278810715713347236142528493856228812462427548032074716928466542841631849734527583975175398738536748235441167568978081313641442480898018314569556665433851132920182685048743432878337102989678634095908502340454388404981667117746529576463249705443684477891471199540935077164461040919512595361074129790793945540278898830848296235623661410835330228302085132345991191096897799943146828232075735207414668467840808745786571919125128973084615017786701153036885397670361284140445733414889716396564808026691614706062330452832950904564659503055052154390003046550860498509111523056722086655527243017597047000831598148829128363624605575238905078602114626502924871737472752597996532596707075943440166657355370690727076513643396757086536734980708586986127600323562903264377210348728359279357355470920023825352926100506989793262343215724593974289471665594249686042423894898826914496020786464440946329177877331100390078400394236312545036247405371130438606139820917157329385348289103814912496092809905794978486226980163238711016417007527488991742794993864158349635567424142220132462274779214166089064585051030085092077128619812459615981422906614772020597724679920936695923313207827647067371095236261598973804586267329331830632857259061466246812833571200391673966496865721579124855183880387662833909126594945774938192399365937625318797354555553585760645852069036555401559415557293552628278918755069292333025139061661221677829536338487594608163360983709486205783549446223918477932643614120565262175199446719000726856484865295657962045737088189144062048317525998809379584906850651682547075411825082039331660660064488912826189276942805897226833539806340221589121991523468026108432620774793352084382340380022129685826088402761048441966089480256881266347651850553613114424993064073383697948408846692010083673161543771242242500234820798229620542270047251479272793356117185409135698393264396645577208710051599700924218370253013413920146020718266433220672536416608675440990905230875178293201341168141871574508509845456490721511409193783954706320975083873936490954287088117073464454375470738195381621135472673128280657552122966019592126704357473960482584575762728406511097828168168652494308327281168086877664217319593615447283090450994738099226402380906706423085818138817382111638471560836998666808215381070168803366727114426297089864360873139231408788888121457791773975911782399050959684296688394093278363202143803790001354489020452603728208082304857571020028650189585973615132484631794124542089349263829817809693854420248640860432036990662152627678747390699491121350402992512817684516085225595067295525315530603770525304820586813603138267201582314208938371428234392947339084766235736653013628266926253812223853223645728404613409792910440689924044720753761716828989170773444099070863175912736149961911216687617565406411996548724284831077436236718896221118383887161153633829960587127137632318512918973185096633169344279036010760380608591628724600824276492646558980353451049371285725188364910091277381686975930062601938100082985176105519064504715816718866639553798297907750858150442845689660782319640171402632414983941088289992459552236073444621030670538079290389043038662495884107304612034443546093718640323853523336243261725408532419131109841811525615820254265542737692975370273330343246698683169829695122832488246834846102935572983818354167563155655868808677335673505108258647182486546927251061563594418616295806537410803721491473329518743040186438947601508593529373163090767137673900200749336222397678522226018243588474560413189771566459879720778894624359876774297262574611866813003436566501371833121542637387065103448649575184539931552058861399981097961416542741061109006598395686741023521053085976734828559487394815392478671334826480057459713714926582629915073103823177094414292035016952385822516822802777068904086282226963758490086839086725912364067171366088347368785260687929602091736359981119604061329730607487015360703515207836640982460095763250104375590938755122162009727958998889286920283082158377941926748500978186160137549902488036992068597608793956811482117918221056924666545867287723479675052046381326141430423777607273844812111569382405100844116718117635190657993881903873398140419391188616406473941260486813481726807788999699246182551381467877430727597312413238526350342388417901553295359468404594871390687098769459307049669430019098470856998441768696963497678938170590441988023583318341479789493427093546454398447112115525951523794342989435628678238900506111269534213786484440390143814280128126989208434288192509812753594322905291419037098950745222279486338770028705879330999160844723911674500933135506398724304721214006520564394195096952712627156178576924729457504946062621287184732509669748354240721266041835320004364532272481557043383972406006093216612521107304453664344568361856119510200904279457159079235907633851338402064936994211671361626794946415423296202461593644597961646289083538135296280864734213008964116363554105444948263661173785567211958318248251246169980069037802216615017650401808221690040009470095765820887037994713717741420900545741597146727452496164826659249495303235766216151996426723984442053431537167627553999856338757444006153244471871988865144634829948394817213098301165455255160837859842873025570972382377288608892082231803146649600573499440260688002032558615070295851574694561254928486802328579642694895428787621674704173113009134092210299011695910580443272871358185773417365016748670930731960053487803317443806446524775583577389635133444912582644676616199899949392687289456735615628409231045350476231811690434904862277880899039036750969108229319420166307852304607727961434018627507784630730306994196493334146896068567197054246543941280227256287050857874028519931444201937428460038756167807119541161904008996319300422104932214145397842056480270296727368883573410766521806656012022370902756177595945827857956942999391910420194500174847641108774889735917392496400034857004138027167072894053609684234865043024047136641900642373355031554637590401550917846653982863292134880437440049843691092669052036862575457026347655592343722379752591569949722474371215279002624310544348540924282155295959598256899284721620332060167606235043723288074420537381703791407062208317969292078397715611029308578014285779226976368462437842026803459737241513112495572580090213435740484205083885012444114578688638395292434975814157024533393939594601913528271230142880355848278302622521285559064754081898059881332686125473711883787293759612858939636506237066197511927321704331471629016585168824274562978732041955386065217930980418196306213336700771775798005461384982649136181901553736580950600967370183877014026749420226148859167722530339828112308755550820028759123008592040081292795132442655569900394258884699545042353675661446829519042342106229381315922539787279634117576339498932343379342555649020188905592679036413910642640374453725370221398056106403139104901819452597138801488743152690545839408345648201366431311607699316686991079079294820098563289908621599093132983972786752004998344290335417746074221513219269860669073665207796803869438664313133414803378058130102797854923351806455572374410988845302793859707744934357129466477384847199053769727902648974407625891646314382904526303223524241234016801391486387832160370844624709284601244777607134248737083256803824129316767401973469278270998621230104777536820388100266440820671672410566749129207693439476119371874041788663610394828491317856209444455837943275359229620649417840915033499449779035370650998626229250233449613808337794408440921850203121168426037009345240559768370088672522149909632721200298648323584672119740500096629076833368421032847015715284870745311477840342630487439900738092614245302013814155151658923462409129850411300296366993043449534204112534500082202518262904712537514187022786149655387069935147339689979444134548579207341081858069264904298416998395682082041128802473383367313110953424035626956038454902281596524009847370960218944019539415263572350758663169183036563082029442827174588257120104436360675808813214010961292257792295520392682251024692550107930638426439835675935338147970050891113703976857412623705116760912806279271468354282418657263585453203581898087865349267389886312150885474279791785031260228332708538347872700705460529522443969738941856937772743168045485433627671961274501579459721491869715062862182797492041944868376576740320927248954646115945783860261041785399636181857746678650444606673299523186265821939578001787728190748847872408155872392033130914028538220616898294717060210632664180224258842927954259706460034518328634117505734254778011376986892486552745744777311409755002804080239504570352867095447815847333253031285756773268788667211747621238961396126466225744419994066894008073618028584030371339906130883632923617607418064374067225294607253379422709998735882512359440862171564387560533971909352089248936291800986128967541180905451492139164765496474938756181616662552332749042515671560487122345099960957874059616067194921903508459048934536696215570174491671315495758574979367993813613753468909889039390405800654522140308510739403452692441384437452704057083864327433962368101858733006686325708086584959820483125197949140710255595030824099091772776836796195849685197354278711316512166375069464112070033462206596775723084584747149338850910881791126238279784613701265910990118890638592121790155355647123710634000604466096359101100102644393856541511912899612232467300155512360551041373914113888264269511071786013231946516100030608039801407079539010872829826299473775497613418126107317266381457909052347787000422979174050780707788363305415512283783516378222259617309724063042069925704571576267317028684421943445069458396710728011777816179742573171603165929436656718807353548090400541716397298317689702610913211397259672713559038297858172276839381994336752181580060684730037711561002058245454587079551994394595026505064743452744547571797952906643435587720967975857501990834406823660917829453569308094046206641132405098620859363533268902675106254437089399926864282829675883903281209127060958506110294813167881510724505719152838495917772529873429342302179969811155240019739552976382128966811528638774789332657957498834694497841861273548228804925518892918020369928206265150004633516046467819455734411866474062582270944973635109640705701477232673744375082009133151342062571387648779718367541845467985991549125293513831113095298655001745622344211504898067787218571859821793447529773720902786009922108113367530975273824404022912411477112344144204496430266569109037651535476161479879800165454727858510062905510020810931088550070826713948267716234855192078983109405036009604524969715819032815414311124389151680826431455989129325810034217835889634566762230148929272932339915403277431849034202361440671279431942245628882136027378307882361433209565677448273930677164092307245245309192985476270881826007220213566178648314235524131678995319009514256408394616548607698988231177316893016342452875126056415536733773387510316253966565613261950816048430458250970188530051407419823919009948785705166618383550827787155877337728466733397136234494083107368188587371653953905087774208037996575212905886304045566135713895065031226741864497924617309391273759419792256933514596849609200080529185844247179175717029725300711867987542170892881235615188833640795989707466163712839467023353638926881295657942891734634477522776482525831797586245427846370291306133479379576621374161795393873183257669754987439386662413837250852932191375455231299439679843586573318436200528023078554025221695650968818605453627002969420991609681303818851708639978737716058022476717853382720206598004265094434894813179397511257452777247562572079733911921650824229029374095488052196884853060727206244608107405501763194543240646806311593871761739112009875064676545527346336638130683496742395710862096969628738341404816766631986349792362309515446815777847965272686591057780586571736512348276046040487596183239767232527829783828843808363168726200849313202478963114277201937318590150399591721600882867902137128928428705333620215099954372941948951467311376374957505643225217791883583573797046597330477974867301240421611730070477484431453584044489691840217991109836968047902664187865785013689771414200530772334152090994411422431209736867151020546333841705567514926815966875447828145720378626910292741303770773137024688521582899293885763060681193773933080757927013347834852429192977575693792319040894660584086379500020349210902205283818648717541889918904209716274036224844770098858197626702957020489570405557252598843465651087134263740215524629903536845270832559145910007504333088169071746411908518589922341236177919544486779941135904401342605894688406767217634597295839560128135692194665232276155016063020768027966034266678240927643367726455394960707286694683415499262401655547018606249546830854955683909790443822207497880119254162987939634349355146028368094102049489136231176141339785719479651695853957647412387273309039459196696984403211329424374546747687547097154832348059179883191652239421254846536444208726939104330177773648363936117552966953066827030198541994169762607828844778370753312359489872123125733533338741409858677174597527591311424465338611427501902416796316486437471035922156314080296801878799214667496057180921677883003919449223078814508438533829384002595163149165634470735783958672323811108709529733672508604926993875902380122293016404899885375483994719614056211445291846816354430625025918329673975425122115473072051770767174679357611388595719602034510797551465262854512927061267203556952389958439195532169517406107301344386946516169172085750426146438158891777501402265246165294493727746582719307811382380989870281719526092436624768651815315466537089939609439823754184321849537257551901044365764660156508822900329497280396108096147840790223099591396421360510840859678449711061018743553373341857770973490625256766921351896145239113760284125699326893775766396003965778444951829911574296073658376469055812801711090009195303171845212472970395274043188773528468868309670419287430548096104524519907945085578667394374100724003485003659232644932916853286541081193891298981500718250826339224311562174632940530111537495380949991348590448140511263951729363996502743688162524575360865625355510062522552627184527049204316579572573797326470546491222975732443768252291886497085900280839415478764470171881541779844312075651506359251453292300458635826252777375632089895497353606058580850966489868417032843559471220105426167674181736546402257068890230173655576465289481070623657679190767011713030940974141421574601217121810474530804135355614568748099533363404919860206281960596398255184043995734421044447873267859863486136790699950499686018719975992855222756316941617705651199504491895389097429116364290374897056262096207087504593335879055954701178449875098149548704810060280604668870967865945807635468983564567579225313356880452012905622990286785801823018587771470619410145759579049100294616827770646508246289669912643609212672911620429685165521281211726971818424366617375608557339618541581751675139303912349618094542568657064211144136181817187327125052343969726217002420611101693562261424706954850883028155647058193799529161486912377892560219559891467177279528840795832692673279156150780275050213779562943610464123162552655708467154350468113672277101632684678317491962584742938291915340727016820252438179705489603816905608420543191255192238605057558764629024193081148848801922002631635032338931784780787529962965751687926073571457584760777121264216025575674533029300832978557503704692143410773688469751173090333076786198682341002698344958192465162088034645671280430679596618809448164544461305800380809239323090402311859540872700804406373272393008659347686495288316122653034235670575097620828749830022639288710250406448235871479770255907327677883990816906460540380910920084433336767476916152256663571634525546590823189579843158246656582664652200172727453565232782660209308943362067268529226322612782783580662165875248084479972839395285335939595074697583977640639948023143997917271998593988555863359143747176072110903696464695773854735437423052066656222348366536731483040251802631282647177211874186548488069966339371742322458841199093627606227640956690973270569117327564038951801206566126683377778552091138437237176094916709793792342068615807907327333862981319523452284053012256499080248921529545726861015393323834227790467246626531171416580641703345868421235851934851666774790285456594949329318069898788843779260815956488811630378667968107146869590474083898156893997532641707414324666719816323726910016358592278557470200575351528894532799919023217097004129709281316231554811082464607204997877110771675576421709800979182842346548450291487627687049946704348026971657940169371061727744238628411155413374740658322677529852980382502615811960438722019936148249562424928881539721973655519588095346417975548206071611086006134033553928203143766832659281727462658185417534429742635094516832264928490281290161045627507453416173312790720825737969691502948039319579168173300686806768356543664289637550773044463027535764668606123822931057663585799071438586483860198810953180725756608763727281779485483850304473152301411098914338531114523348248583768176409191528782615033592726173039792419753506067465164847485019714928390168426769664427492028472042036046969730282441495148764095884839068256244478601924024013815184837658428611593472324293889484184107300120299109443167765084637694055508427677928087368516313815205282402857709412451181510099047488275516179179408877329161970394736264977125762359326479263258414056148263302603501363289585511246863129226375996833463063222222223043956684362542003167970512963174025703691992653731207025118419245051766071941017365050118061235920863262337671990349376343913653797541968677103574312399818719671961522783737101100280639187092137241099238152381312545952177732243289227653861681033977168124691594006313981301363673835917853224949040471494333612786341935742364804219177662539160266519024666682731491810156401290832419569254119608039803426824354530320393407590664218812044610656521022551338765869853879230555297891470900617216378358118595533885499030598291065721016490910798335664658427523985506981290453896178295838433320528544586032975208411503976480788751830382697528908567149531252055448704892592216660558272948466204801615773954947073732658894819946438222144795206419451550355264321083298086832486965115718342415541071039472585181884166843269316024789352125266374454443389720870503433499668788483694301243376074106423316883732759256582299463851726613712618089767434241891721881424431099294164470020500191021111926681587065123711647860897194868775504304628638049488003882129256522967032103892089854965559357457670038488866248979252542081666423481482115281174371826239378720075416211602523469043901788941545919164184394838363403141023537681956639590776527252960245385574603004503848051190462964172981979796717903069699661446983113427539796874911151027174940618577013480891994719145105319249090904461650338013180278067139126867638840522360244193542781108210454638253239730558549030784995278388438451873426463418343042410625466829023366696828315640228783038679170979105745761514840279066636852393704766297043252950953707388659559600855674507163422342914915818164133187936876018503379296339235331915215213003663982287072615279777285744694521947183827534116824385627074135998305361210381832944060918777323719389508125698165629277289401153675316481118760394623042011397464102765661789591652655388882804607130009102982457402239340558408926412973259521406718497121055766497594493773072792783303941992053266437862399889182444404129561032665524813079965554939503004759875408477139997580225699169676401352746152582563580736937607456420344013045193104688164908300471216617313811789673521821130874276892532428176123567623180250863776104078264990533903624450699418482039528517328876132207944811000343058000306410192806395013959906311104061490411255052485390345406768028695290285128182018366740482516415248712998644689295264810217497346488010805448433554681179695061784151554314114409645099242308305557331097444701968983637269158257187547331371025849985089939762198011291183718505980636036047607190184022292880019468601927389384619472251315652372032365049537443420929195530163906310644797003518755324972552803970321452775232640460342130783211794028818574516317071610495392849816433024090647674098131081048045885008033478874315959389384506605495375541475661712725638199118621779488721853025141201861399908500744735242648137166194607777481461574837244892443625651678549260308693016532820482688508267540979916819778903409386433544806034131469036062135164911986819455578699354587738732907565586037728878536527576601227641681639263629276533547049625955162554975587677751207966258297665514992619912524720366823488386861965155816484346663040024474711810802228921536630140215782937594328463262043500854507707207013522751885161567177427837141026791508698137429473623013487277885435329111908124196726844403671068577683559446951640281349368290584027825477607378513939566054653818521697495498691804306906912683894040715073198074205810548149230967568330868999699780939514959096786603785063336726048669113941372549133023472982772658330041353839559264127512357362030571842600643386068910878188193521890988623972119776619699939728439462136150836541334848639938245578817764380730447319279409917541026406169547907088168088544363945895874625001216579945647633699784993841106954152290423112524899141678849521882836741557386088248590575721222967084280869750460567374546807454283369532737625695287752197869600537030041323295073794214061126789972281668306102651671511295909645924350113711591936768451390516621438948231016614234020776301923779078046315679707009915565465807640487529256638196732709142313620100061089434285508972741219962258555610930378210025634834474251806588319270987686219064560988033657961679543784525019791562882640239071040496952654885688725337572941256713240634287589987397752297016928050425698218178638295678336355581685764066319105315683301097330392439472666103198600132715103727674878089855043414893432873143396222057995007991633547061953797452164072978903767654831631623908012001741174413192463500665159073099984669611253094504045648022978705162286321714058510308166769651804296903895121384779027298407177241524303626787913763497029614103380971240691793495262023224259264874985528517464434656083953625447481153936759703879541698386642975237610636502929545139393140218312329983933279932734294709238756555065959050210813757459521562429345828330682318949748045254842212583771462810591753980855028610448783563957527193293208149310843884503915237708365063758317619586721957723112709430415345101640427071325211959331690977633393078234929332086796998366866177242994276651913709591385679750722493121349272527856572532324381988296359334017191412492363837449528102866464515021921307010306822568131757046442267004756688107030506856161259792283485702036155507299895232803671527687311065725078322082597421335361860277151880377405608789713432810904481799339492896404488387328047849607825692465456133931043747051923659219870578878275245221147560437898685557201033979038826218223335827599383950787856936238940376187983867976538294764512090511462365638459096534302971979935161777850111237439687922198721590147866711631705045008756596703495045472685763247942831545825522992503499747885308768925135649592252867755778302812079514642749783345954756710758979828686809019744804358877167754526829435854755976145844575611100127618978824746725205978032719599696693926350035329199144210984920076783659904312858674291501349677819060967483089141804315334625015915188163347577109958796256362587604563222764529682107148625121079211106805427652766958995896077339195253365091877062136563700666307437974762795745708385498154581051876163411783301282242068544254405387879404905694505698519990654821494484053590009982089085571336725658458611442662746776547770311723992619816789545128228466324476251284831765696929867166531381996848712990189905268543316962689776477852275893482771077042315865489264979320210106743690483618480130927884366929731402113261564812048490662924423128689047570719151359138132140312013057495460228713904519801361705318421892644559498823809712366092761030162104700239404846513261030989763165091046588209211580402615591183839239050120454311629793625324822221807505503977805205010399089826352008803700396078520651828377511351370846085556130077637532331830279484463088623499992579322667071151180795810020549726904100822993421553567901525117035109304399616694041586039313546769443831361427180666562865788090399060409601834434758982165881024328743450877945396868933642502087578520907838560355745402638553563177776413087951180292680214677099352929212278495718194299344494669530099082338514063426999285482986797861375117822000584930525609804978165198634628157949197098007811271615407036062612694408490559880865703760265380365667614976802698607719332743979860031250355652212645990398655713383855195489021945378144192023600943085854822541101999640070114528424986315284861957453120218437366432893137999715892574631700330846339857083140949007838981780993949155141898263186363605249766912485873285982463610092840176943011111821973271077899101610287985386573102281755626102540901896450227697958558569730730660225173835561116510803651647427224769855175595676396179438520909358618912989204290811347687958511111341854308105321426468758970480993586326867334342015816187453720576888074301748990624314610046033700093741964996066398934828819342506285987165907253720305915073498314393943227955390137326428895328476334394317642290699603096384559243062854761498158105952806403432091042054340950467846664332065532394757256606424311307199349291145747506078463997343585296497681760940189224898407439980648646962182253759889289175134695050249063077588082138381523723675874301084148888714380898947906219821020995094125641940579597066875935632864980582642514655363068331731513001771801912242510775648192892433223257820411800914640737856221450741995048063057031657327888528884754000668872067844776551223696461923759461297405317180244084350525143092157614053138441538091510706957058551010470416659230627079432729831961991286530174333619728292547902558788760770941419661383524533777740225455557734451992885868623852195443352634858532513643139891561904639160539018113171903331582195358906213488047151782698778643005371844688823466260654307592898521899259769834300343686796372080671884829552299056586342343954743625934686108972746687142763892495515765722777024873898632426130019515164642280249108049313749079726457600510615410162599366458006614949319975135229066420558408050226835275538935052970091519400299634222540717389672248408485257760512874864245332954494004269180157231680719201866196718917216826703633820888449648852979460476944330032894798719151081404420893830184926701525806239825698194423954152203740343022809170179942593899855416280518984999252476001883048001229195482164458263822402691564548844913024208486058307688204384406762698101010209216884697347940143905499683032649247065050529907031972967680830399915266564759596070600127732443356978930912439847002603058130547848834087831562427071380718784931954624728836571799535360541183658631898179170722642469096801655877406133517605737386377440236959600235162804580673086373268733850423012929013763762766635101904467038185566906171226254981821548004651765842521548663070562406000643342709372104960475134612304656784272160395698671067999198260543029870912576978611381071818033619054216094877495747581532342174409615426870648480563828889341513079154974813116925929856474646446606194602520801481302771106069330078056911062419018324776014265959595395322756033289442423400269940732645370400623668996578908029776428287574814309174120439324384136477412257349023205425144292233357320819275324324966266305566978723333265594104186746363765375569683309525894771952405766369807217839421931270897145488392304136796428182476827060359937466779950534517534047542848069202226477901228023202746935364537403720570751251669152076481323608701892766130072701370551879974284114576302727280551445286987359017321149003140526682541249446050774122421648450760356353767793965957101928361391625136001959163286036652465785352995432500433280965886284548512509488444980224223812864774630017481712233142704893585470891766271747933160542765717741577737296324799090342807774274813000576589694815185209859021974695803938366176431899776118468393095934798982821443748413052575944385922187091994648201455849568398300657244529219603075574086627372470346622533815801340474777464355957938023786404904972000651777659687115121471484685057648514700897387811294341271494569840366770750700843288279437576613278380968818185303101365938557931215267347456389214110384425836331685138357112505260010736385984206391767700577582226433059767330067198953372738167925520484843224132712641973985794152974651691387814775905803384796910660557985289804954821347619963781764759543232064097069424494071471127009800416656973071194838998939158306430099187124819967610762697612170679684001043857607248306738971140486598530068121269830709794251458449626135160635520477271599781487637278998952848648994490033363880612288785502612181880369325629226836914984882232479740441139521939133426340202430834160325679061736777093450713630983403175327337048960252026987890043303247053496614138274629114697062814012180022575745893339462713717304209003400615861728571665980675770026930550218399069264583526966950055190516944175499588108688290104820122964751040726298113077172243103483023811755270327142131968766108383883241177748876922313659738464611805813686949980015057672274203384661893617284269409789965097025406339962817758429614021564965964755445111932365633638288065739475814891720595501852280058440345208627471204757152099745106408216602061235432274668023519191004446949947839817956619826074035648327054757312631414055804906548186994822379331504601964832692286322880447379341298455198001260164663006511126076804193997834988679299047910208246667658040287984952731165183351007866911898000037855861762147516304390095423189436328069112174570316577647940329895741832681423638478826785512798607850105089878624957869328998233468067206105301183387834177637448752863200843044031761984749431346643645021954415261646070934364822836677962634144095768212274251897895833659812668744744147975188172844821504525161123419383467384027956077436768996345371321995756794175827487697633291463153936991651637208499816653492034513029743723957528758310039185575203225162297356446144038323212308854656864991152558593342000748465033023635600062165148910581665376035263308073101037406236895194184843852715533403040855419213880989071062604096890550978218240106092629673511693911917128717703585271628607762843417826353683231081345189168240589573033766568848273892794557957000270242752907002531284487847126658196694894997042647657050318497389218966764757127905180177121731159967619638896963875669100364173415661170667535923883144515907072552285401926624650969901197297503073737370649823504105157686827101856658338570058128454981606758542024860124262069371875886448037030481915364908873045788509095288837558361395651372921701049568250148859395158729695695898826202905384662687435615550310005422519495153196840911580305522478983264413079990670728240268453219778312004878147231175944309945915201468502527498305784155752676572632526103629388022797226865435459053358518769834382748986926194489014354755615003423417083981518197801392723773020401377553285043304953286915626719433087529591433210447956087888239580034204477590274538291558944665996483500685406016017066221929139194628438974068562553998042292855822563129247310720393684876718887751140705538080864394821434645843073746653541909011507143161299175275190447241178838986753663042839807567033147196704446827896054829396048150091563091660392964852964077533113989527018833019331648348282098277654759282753517452726673009026307963183374900870265065322806097662621358059641855973340618570234773777820945595895536882661761968001238298208499849467373522666031478916916610459301442801508045125209944825506082285449525279815852650759119811465667949426901736384892302026888214102814028134664801537882098870727790932656502410018994560582269847701553470184518336371093692528944671059876843563051854472571171556124648501474557774252936088068252379114907534178704562180998040220022204465440949795727454258104104927339826371266753195933115668948925994859319529245567835312381385516126462940578171901003867804710039391041467577875172822692955407306917897359753754132655538598931400648516742083305880753095185031349590755970745918430611429097829975187108105642106517534197585119169988906974147541009981300933054128023191189851480259765044847738263169921641407004339688999811853242479262739759515589776203002128756904162363968513028236126007386097322083138922664991024994625779508166553513502596032695898085781660390634546635913451171622982408062662350515192055827225952388639013518071548578497308276061189478895517398327791953574117149406342702633800982159193590491193962549489556402019742199139998143169867495802596725602719246037830110880637040790639895037603239277721840288766028995313946082870055454291734709397002220829819727989271824971397980466906698697345094933458912054864729855172756884272340459364282203352691228717687420442797795832874129250662116334769760506433976569879164715803325246597787834799704309596329406506196003119550929048530619392101723061117575535330873844656036172915566470967170234314246299810670232453549385315102958216054514576266383552933668833139487987468865018192830165189312411851277024029860192040741533795747491955254628571908214395586923238633135347489022319191386595927885394465794726674008424514053604982218093188328100118657302395078919210199914388931386549138866328008659577744673329209080452652443253024481760775286498491839321635169770249920401418823808955387759743728619628851334572319977772317805744552578342427282344896719406109372197907538477423102800209937723483607716643227474502101781361227604086089234691501122017117298964060594159023594729253165930234214622693775316048232656731356112294574514107244686023706261014189460535025852292468000644444560361426292815007261579852358923595217443366186691945558704233227117126349072887760813017255691445124394905295130591181273768164506133971379375622963551555654221530007265171866935058714013912895567856789123844994775870927013798459870800935596556935392316244210245316407144659747221911830251689776448189454904118349791032094627752828387016002340190225831184905076158388106498181307195895972774409056370990038010914421287221878301437593756918780648340088933284157882112207885329979467553519116591967634435666222002729833514729857873998398179176007890356195059682740974309925326220387443895169372859723974536206453046579244679343749012628012496881503728040681428018866471581029562574865612447432818339585000315888308686784951429423691477688235858743088649090749811584089148339732752896547031392443809766963941789598223048430192412153404911885821231711163295270095313254300989386405892137033689461040566260845693174076923872178309924058661212292927336915557697776696958395688632851622054148816706146406107960285034027577408731533479775586832955353054236924685863874857036464748059491839153003041632977365027271263197294664052996988693938116480444281457038982015248588049945862362187555511202373477195335672162096624520891641732257835788404317124486715615518663550499200539649915620386838528968873971399071420090093254252936784435186251556207031118989454770623043987490303025534526565967258356022394342383125888006352215723886620431370043505963449256558506461828271827079105216522061325177467321850613776202324840204498154501180100074771049582512791965168739023379363974311969515243631159063101498489863717282783477940915003970595186990547093714802624406957032422230878659276458965106169998254549191966913091010944474265411786851028519426075613846574275055362594716893950345086878093564131234562476631494507213541898177083375210255210902205082507178199765015164325216911475658643509983841873885007139179729779929996560578640832044619156060196431151555906191074321665730591803936618648299986381810809568725582561724209676442050365799525954959571661589605819611385095309445810269015976657550478563939046547845013740537910473978817123257336817066833576595467199526414391963915194155890304238495938464323279431470532824403893894492941381751471429536105220271118318320876524954632416796285063901083765056507278691056709901262402739394375452647972907108918433458577079063792778412245662864039923280862797656011466054564661004205281302734597020298298045913958052757758976697655499582422531707747598609669640755645819796240482842337139906940951102996889244743341520800811702500656205553919780047786857868909619198886738457062962003055101797059031059319564361104297643670742287502508154845680579187958174606511045700856406077795922418363504094829471095047638081683945565765765515103859447966883208148389062970479543467446680060351966147249503363691867412028020157209481972440321147533078194216976685051864913573591780292566797255811731039459291708583362481873488442628778600439393650277912290839327955340205270344752910205765881792967706458675184962316653992150245771578743404049912522287294760489325384773503705582560571600263136326634125663832122424068313885535177699879973805534268488779460430527093633846087946570442319623543492372206291035297051483323343966809394514040050310570786535971289069671259599674480015361696196117559282350592075004177579051173919409027896905143220680088026618032403759091541241917069099171665465900723223267346376576639112946142779712387191133928198001238782939171456290408657670765673928798463832463485455123034860263305598283961325552400719915760073961095555463070408485605003945399160688074050825391928761007696756142957413687931042889215770453024299720237044699753644057107332588327400868126537566382221481032431151984349606599133237582571720687968861364295381061322654198102611439667635976578720703830098380367831674180071836570491194830084248169748003214574106547087809204078779346267449820651984365362238665843528791397049142165646678208919391479428367561867067480261323642598571634075974730238911975721793059674337257388746753244104695147404127192537319912201576214795011742350842387530360261235724920120586983240895698161035164254953373209416092683674327452534686824635332642462913907290188591390251088402391534689936588960590661533788332953753843316538802175818506089380813310454036283177061917951019132091907580491458327163140678986384574720790295203201641312179554149075778235606949533193779626632359725010499359155911502749456150832517286836774342925091726912095650770736337223366251808342399360508602277715367647194663615731554565707248467196865659278860059387082182812041198197746296092728760250029804542465521659253754637807632255212841790352162710066042187299202341082468376202531927756622308138073215122877723118230464451294703579787354156122602151044009310270435801189977580015638952432391882347591799158763398364510416024395044071050369103397602592677846295583654957889413760709709613667658806791846474496212419067119012590208882983089343009478699095526493172127179070741492483730366110499576877025778943805182071359979717036060509283265485137965575136399525416494776281289049495250592769291395839875334549139993102854470335364059351495281379158603291496398945643734606559706804549278771012165170322929563353084126885508445876169383567380600095528844993406165267487636253355551709366458346534690721830126918365962069239532758668759308553018848393817659496277514535516580334378202968370434587899473079613243899594425132995041547963681757701940814447349830691969083986917679084239842600677144432788514616166168888274885092950576427159655213633816256832565039383055157791659331226889277681284263053537883510879460230283361975495927649633399051638708127162005910387638908735712320457435182320032939356732182766592755480250515250302253261116082554990615238648524382199555334848246963010722013738491562850769429635718863275424563815658373266873343091114319669273218038086611146684296965766088979514487602979053654791544658541810974623175199770021080973904238576615380958240148880920701311049513945924536689122531276169724019685950001450133977861216468699988859026654161423940457933044947493602807755859230769375288975271832927949821055822902439586543525547256387294730961131099947413722237518251725670715420881020502549020255218782098008535809762571816430926640300941393414364350775826325495633745910218945329414105343747183285102686751267620115750646521527048722879412157236680059938433960481214440751181282777390665701478937198636008879915861356177951894452895420783466109956617333018299755810255461960527609126999037240551509552399955014653545890158202066362687790553494635727278191246153793014997769062562459488018402493979336937301825075525236190687935150245919663525036633595835552312901693396268984500720416391204921819170373619108190555416851000107933260688544498465380210149387950695609933458502644029230427103611415652361932358452762388091577639914581862482068950945544007175566427199244628062945271227434065295890724873767379616331148724750539314102675487077186156417640040712138787965665231994278595231826936410557219776148772185632334307773060724906127959565727130359874438091636063824991623630255707098152621174781606556979023188598083815798211141201331569880694545150059987047913792756071300982757523856812103645246667093795051924987522724493534896827932047417063719153311571508529258715852361074636793735942818115167870480374473964034924873870049551068191404248748211037646200268391937348944616097711496393353302772428954292759421538629542835755808276920535914254224336039304813135742240667634634050047738137347437365441442733169852889157230075553603666340003022095116913576081508518348444593790437481285397886388654540430614285772059245759842626518375177323296506637304300870530210709835002449906922061796940322394211164920309175804983097401031360225854332345545466052186544408703300716232699565125453018701624824619778135543666042688973724323067447283907951575052993212908044916478538006998808774857730978783251297039466776816283354512951014594544798075524014913022914793587942470968880542628097396184604074527618908791761213951147962804898229107111112139819838920508603382278371204481095014113628494415021092801033638597936578676792619498455484386489347402549028338729943687390138525210221163617696073529964269775418609017236442063832399633403983085574606037332766104861624015156426742473087908503832340590383733597734599653508765647716651816512266378356472772308418714443420945098880174231203504060902528060695636076507019542699966174268667918534869468506517827618813173136042532392360735699066571051706528759864183054900377868781760878995330545224700103143574344414106658907057298802343203408199021501620220268229391271711517984798702308130393732480421534603979805277906246980492751574006597586793180074825688896923606893695982442705405173324580544141052823597162149725923141414272601793186549868523813373510127469785744856995341235577808809559755850748568440733195447100648547821788977249164592742616041839481733385494040313495290963216841975790139494809698185756228030951403715524991930804164186088203940788305649007330323150374268521963659713497524815173794133445103138985074676413061782723759342643240437746704635034750787399509418483184842810536125254022344048297988852970963660558674602717520251510017161330822543100209679797062038336268453600290255784325195078372859335738727664740316193025645708919031239380652004917129928870579436401618821601210833325583695634089417567939454342740762210128996557120917128229417433174461288368143593034539192724535630349129377651189162912256996012256366836258462117323595462384026701009250265384903580454959077387902523963321043379623748517812246833198154610131293506945233090120993213053782576460577634547637707739348245901524016150955682892831588429578635958131980134427352029759152127168119721475689390105778062194690195551146961802536832789414401936680278331312285360786473855448867656559179913629094556224090779316108207734167196043467491871907177796876608089694993676851995871111784551313869842054718451943529203384973846300764395109038681399097013842719635211997126874769524268772820874893474782346079599030214893646174984036156369237158966907644774750028782841261638749707373322976436523226532830942474429203086302310091002104448839655568157038376262426600624770525186995733606489213942698399211056797257240512651871506578062481483619498022006761500807404942255406256296459604329711482070073281894365945313437092116764151708029565564180079665392755726308176187850547928731943405892246210999738803949848729239043932540953789815313418560845204733541384793153276641294594736198663717881155930388720453293399331341020730303770430647002736920558926818047417488338201869758954117903304350451976634630642202084750337087917702097939873376817813330911649878097530437749369447924521838355005135835648636658004823696119381940561653664937618044081599135125356524643830873706430244167271233540637568156383602366900466928674305454042853253132286488659195889919180636946172824355388163688812286749445823008225063131618744306356078208637568356779720829584048051832166298452806114510424235144725601255307600424888298214302398407719530143816033454061956790802616652783740201380452702139245203034452421230303349756566627033659432774976278350460104734902744325594039061376961018267239311280961695735093555936674898866333482447401410929783760530649588014670619340656391034656467681118620464614486513473792021366183799561916404159689911829352233435730220261476269789913148173283062391772938337908530637873260377594637049111052969080533616256854130382530464246306241255634976280493314873675856295434848515888088879253669897424172465773870472895143773746563283378406717853129924015958324955687076740162756194317488994411986183865684551018417648157138872512699099740387788367944099504095821765848366849268110408166315179223080311738351935010961658111121091960015729398831059989429402186613674199916840755727429161005036605581861913989752110019832271430674071998063613896177717456337771450868097445014036102625478043015955189827689967206867638613908102724817754090354975501587757731132298705080505826659243056606505418454186788296544783075523328307922940167729906557560136810444477852396947556188194866241395203773753244124450438783768067896841985754754341186275310880350257108159709822883058078343981171199304546177700749374913950848153094765703661835201210728232407277925833423154374431699670399818161690556995634116099163164696101404109692167004602200927606868691637058813949925207792402829058125901252255362008616595577713185492894133142409998847469605992133584662870399796552740880693711549617513442110368341835102232240854859472463719367339852527559922705783427871245310134082136325023618270930529975897155238190372870111021812811314362299306498109395200508710131505554178526986558104329910956737168475249008520452673236943821539476247271013914280223205451322150355062044492927947145046258454512103671190416514273774159381463634172013689467403491911961099233422817727191070319157610850275041088475210788931054702256998739336381939789559121759206668030262592636228532348300728219338361236037563453101478221480179649869247569041054604614594847561870040815772661087683975899795799823349829948868250371644577530157408746885468563045171777667275845092736871284447642050823268611252178191217302983455166542399496805763969100520539481697196628719555294986355555231190505282804882512473845683515175118244225608233139925663614641470346906358065584149612429574295305731863313674098952305676055175157608598784634239184605284461431793788781474402313605469678795664004834627449093412310331922429508446004276304139030466534446117628109180607855213288010471437991888989056194340646109380327986941242677695307695100208117976874058013791906317302785843565389918238221434436308213886344633436852126857293456005202042653247045947510549490789720984967019829043446009414909296947331700901870472708008720212466420398440828297023937978657276595462948876382854543910551098837945672786819499383555323619733387897311405792943037472255938073834814424303644661396383008123885965561492899735564321564241784462511187256444782348484517327909921490065966149504239655631524541364722317895272919620337800271825110763445321981108906054727442653210453969439492990599912981948110924038139469974344267765427155424937432831212782941214509812968642428184214364402099245055801903216710541294855796350177669206937000299944054398294202628388295934237871317969739952561229189591177325544979111000789091202012343587374938896819721451654160868035395695753734294613709914071068576759009954649087461075395415817651184080273018935569433465003094624574644187065705787136807310817532269808732126445848149824093312359782570032400755702643666548811449441060816404591803911385063156835436179670323355330607913878167397834227146419605913156234063953855124529827925472919233538711802913661480206414545749712284399122159943108617275175782302861596464864394933742995194296670271175017589062377124407972133981298438140903784042034415823991980175877220271037147407689316495442664102258730844951433944319096669292791061755990085240489954408345095470351578397579038020694903383061643109879720146945197336923024552241203850043840277220153619017972760274824231191499945372851429246819203201366701392821981111555958515954360836496124829820629038672597181677941568634082875363716774573465365700521744766785092445756856315520904092836986198445619359215561457676805126733309984130489956017562032405796410722684640908828833040746918000699175600006494151299766009334641125962977476614700766027253557880748905403048037071690336657996153430688850870794083959920432392834454526249898421218359920436183528423468962353020724974115507095531037682418388492050388957967761991306904493979317337675348196581930706875895011077907231000036223444913597347947244790679036074246010059094627305613719021339599987070571783841901466755168262000662987247381502602792563693549698088263388584789520276272977856329750236758548894842050299870992051076447184317894533304341202120143300454438656149944580188580633059492702384092409662796259854587656120506428588487607225451032566890588906361311327479464728799063622635828451859341144088458128308070466071704744866973614022647331290371315025418194545681814311311825705895329318446139693148219834229193877178848232442562033628151125315434960319505039130241781617693843051793508491719276575975280947502480281254982720789162841242057311016121181805529966489745388218537796332686960633342308789348601537100150538805171054973829266942488774481383276225412539818144125431266425389741095720351938648379062650932463137389612982668157759880554239484184665315409272150913535426443530697368145836907670415514873622645815770697289501373325147058741901500442991260423226522861780612322780659010327621082782223485459926518937450647204148385005931478171706684504970932081936602932470015075102953462806803419717145468527201315244662913080484389356796611805609291930643957273494756993325808316217248026934398608847016462440149746247100891617229673630483483958981196283080440769114612376592631679525522984711274589597431691100883412064610567855070109775267260262952319400223765967340390414461965758577765984154287447596225587337204118156955991343337723351163411531083558536913584300891485257302082347691129521512633548936378440632917758820003624010914973564005175176271021488921479777653530797093218591016641273336087819624132484995296930577762636422805262294689699887805520922574596989794933410051822196987094239341304021719503515114307807024748920760298887355479945224541781784422709261069312766182230699845549087472980328046414119412323502038009634529163977478330561821638958731908578285784508092264913193035447023707592867835541513614283643859936212657452318553377075693407988031475703250642217846007496403044708595353081501484682199318471051231485323980642403819412086391442686596609303262643429663270368966688336422653169676420020205454480339804760452701234398902289909268018951948197246220074579410237958435403618930933637648359642407124201592524976817605530431079187715665524133616124532818904092075872430307516528596316415013841023475518955837759447109021000216705091100461486625635562181003623219035919927602532808459130406840001741166777085363603244501797057148667936947453836505011603455467287903943089150918332347054710702891071014257935003859759635976113815998548499148684726490489037414775971281616936157041247112111432863849184493088606079577116703806836360109620876474036516888094063738367999392836807398579839752535189510386280765177873096604517902755647406169400122503084449988657661725525268371536232785807529213916976821431389876041661160804650672553677136359607656273560628003433803566401974996145781651839806808404337915839719844859591323033935560741695830234669223941344739169902898835212901860200260777291420650745309552565648251444569410474384974217602751321019676121414284352559317931605188169188963343413186938202941684073594040212079527374780616359562334612461396270979323901615955525087196923385183896193041469047013333898739378713658340505225410854068675636072586268384585269658459205395054676920016412453326785880073264672273888317354630910618186742606206101153619187513927205370337663923642255769780977772161680967129096518409693918939868173301032085627616358238364939550841288872932936844777836383490293744575093577497377299552927879460681776937901658669604757781663345045764229595310589289803450843064901018862254421702843036909578804581381552484371207393113041603861115000459108547445938836308704404253597727406943011386389008476090485925101376333825623355215593434917523107428810594920585127019227807991469687398737004376223106183577052514331301106548310350302591351305814236387980187513392009861498636544361619371605044038537654854460213573899024265995728545061922593309825446342735987174437553561544844562012303556343800485233331921527022069508005794395325023609289075236738442395883763174673666184293719059747494647810286455182349351923096198509963935425275528167021561980334201382686351390427314498203779165557242832074502757974820219655715659357757278720800391128162694884361216536357383627145736578634905951698435744993377059069868808825504982767349826653854022298787625747596640527165009394595000755037671664997437134510033046947422832527167378833915338481240170718368282110547782860659758551380399665005845681411289650167742737509402749732387444466583700291096066214941489678759118139213066500652985380551731571609837402504331842736386477897149507511893286821171667077925661571234011932759949999426624474285329758752879864265665204351024627600133215268360019428592688155590484990375600608977946158567452759158967137856244160250825767986320486818665574001671264233135026710044756979769870711879629466510743314812483999886730649695016415560947623210919049187524883082631170906925431993698751306377416171161363564692705673241223455898885114300779376585886081902084323584924353009809150445972832916456729038814651176977081572950976544774156909640810058494445654206072914171785707832306009621589357409277386011642063601409523319396730015106219761625905876864924516498708274757411558472329671484545023324874643753466008336170876508827081956688527790443823873265654713345226409932569531669844877898320213001695562035181363248943739386846111282879516265897494403006298404696843172067526871467252727015168050970754873682563133367302409678264211872658490006031836828209633755736528535777733837007366076880454270095248638139595860779399214810881022726168949755818172480482326135625645491646313469897625510412055876943386215217381984839789537574335061781648913678518170650220636206686962541857477316864388520928954786206991550822216435960692635513630799321834754669467647256787304850206606427919933062365218897565742777157790896465682322009368433549803723926394770853200518712946197953657310073493111822626780114977283829798108852299825314670139644813362724086373094179108730061719345460532661165399932565744935540266598565785150219745643042740552078810867739403281326763829593731963893841505422983998266214565036638620867917049653021646613863283478438569831963630751864647810326038630806839521346119920488661994713121049871525246454633108462722189051313193666192456429324035189332217569617788896110288430665230872089002843389267867293529203847259790138590341921320490401655848114085149617759342232781561057174587659352255552071234490980006248589538660212650871843269236744378171857239766283647646193587432188269263173358674173709938180880105774914356257216850320857294932002893216803016624727472971116746635816449469522161457647613131400685337818747019114491838648049511971215520244280390988066505651978750928580218869272382027834724450826520464356957895106168088218450564141699738639870583363290000463459734327073943003506552182881103798948737344274309102264439428599393219844683345132820266211989836379681927742006123097597000743096493923436124810531786864837653029099780870411311857057414760191271943589601342296681102391370298422972449113675223737704640738887182814247090006346171110511361029600561583428075583303037048671584104268425960930808331302988678301158108845854725759359064416032679695977620657292923119364175376856298533429758668943358580315036925379346325837563663615096199573030168398716342677862185622865678631501569786579454140551222065858825168528719227407586434404210807565905188183378872641653548446486411377700629458691657455718086889691335527062284176575016934564874400786636669959900053475080033629515188022491116745546939457140433806137885492379276349307005018507865933248729213121102835087849446784379449540275586409353250546049427833971215532463463410814027955873147390642565324598485713684271587075508634513225971914905643395500253288422472618492696990193916942755644249794933802322152331322324110749770152122267125068686715983074910716886743779263023049897580955098722032976652807922344037355033484345369993207257520319874023850813993754016637964382331928821624928581240184406028813221436091560736300843245807506197956433122094881575630325013514876969433425520358593011161587917248137153897817431976981679454647741216951795557564272401026935946886521602820805121712359059720560395040403406517609877078949312210992022594929980142318307682422889254495847632560756696772480873753129651613280424785951709322316221993830984762626702531640139458028691970865288889917329887928605932179368198115614976577981205832595316137722475018162365792293407330922185014344349427066866329964832236306989984534533984682248366993412125457175452168122619115812861105662674710321951848114951912114041856384013446165945323560140780350080080701787572081750142041163005150654822661891430040016776348304248820315783615576114985301082774529239057275127314961325767929814823622514944224867987539696546172064138129541501243344797246346435734747163025710070023226985918227543129489746309136182071515426766532416924743281983213532229571504014768951425357278201300988435706062867489018068693848431901886527486775607274760801027036418684914218327539464128770945230441970590105867586465367176740408624705870556235961604221088761051349100196656152954275210292956193650527134031685940281674564741480824716483678322159870608947659640693496168873051172070387956120110203157736108385153397000514764156604918332048126680311262360412642750891433673909020800260363050435655292263659121564755421765976987869865756634751221243882036201608674970571369575342592820087680653139201524655721987260168852770766267325119589354069314953729776704454524670513208311322909712849486220035200749773956911334336688326749339426366941027507171812635152479345635396806101872573545161704109624154456272923586875036430134384833256898357703783586234640590124020648911535037852550277476807334128919693566794156780802434345020863863618761984556705801773746312945604691617478602601242585831611466974187691468420115402622143172607423102729130251128222289542292944147731854926976391769026102380092680340777901093020963587361759604833887077879233011686244224652982723006571761650713257648647653817447640587956658383634417289363904548105518822085956208367766638078776061325724762749988372749322200954618910634209004352274919578674757448727912230908228701881887027579167198131127874207524247017614196647979172522166040846976555783093902968190414191093547676446214026197228330083554705301945988017006383470599911254803646673098576448690390562320003991890375854957990788980298310818980318095636660356343558500303457823630318345976549101227385542013902693721942275932108953165421975004367087631812041258938070412816052164327208310327817205434266433629428861049514858650759050824946912959483960097902454402802844812836190581133634588138135128679266143965662921568523052489907857804121941347277356290570012814730556220625181136879540222603707903809617676712185671166523364231985129076710148671143302292286614845313474793345324369946320598242932386926749025595372231199490233084991365425196860601302464111680950898876794014526609624901121330480846465340240829453506468814069857397735883547613240151385875682020204537560847278613693657589629555857310374621194355817605318288668772202008295374890530674141695773316245859407577378478804094214797183071568468959493859214328955330668801515749465490844722695201259271796030367380033055894254137474168466821199012442969087678917022780246981506209809991899070592059234753189694049323441248009573338251240813501081515914797583413432688050334686482384385498818570595638318318634905726846202690671043756019628359773231029283576918557682582238249480532659022941315120440195688573444944615708298406146291424536667711447325160592892623375991723206113914439150833958411505744186082295114817623612869998740674074466081046547454290753392712123801981409073415640449988963563361661344854763793818944364160000186701739605337744520082447067694181042652575556186892277965054847079481642745355455563180107431509817933783285505680408230583125287197065667132376675129233841513993882630982901415605954542773340240097357864618746765840150449440308943620573382319960252575024044083127932542869207869392929896925690533623010554087383887344931687090094574325649854974505234391943674085367122038445334972774875144429593627380652092628334365534366817734517817365157465897281355322457284215506251846512102394489283299714502193999150712406882185614095779217754621372367397691156270824974340733033766297232762143267363009602853608636703844621917224750403940726467243992772645572111966077938948760566851622421327996161227289851167336174939064644585942697122242702192412999069569431504884340944319096435274319784111261219436911585843857073620254930347631216642871698731180740990451203472587747840714779173981672753346369938172639023458925184183934605933258940832500229258689828902942879296874565436567636096844738909940549713793662603769529790190143061481873738022413021225609152612958082764404423854083024439670007390170775830679503542398336739581192838617441597925796457582739172074322633347697307592977625908417466068836256520798841099919615036563793523635339528610012128330739572584612448892860167699287141457680619517999826423308260929208190425608521150518009910555811167353935308574152828376076983499803871230839424298049154020074560831831544915875919096534359242378757384344657145445174210104119481291382606797548290761575247018384056846524945081751269696862364678922724980674761476351367945351718543230263871503668297759922435507387811916723216403564066033496725939831604693745513008683632709807152888639368071531326325526353622063351811971827669207353188532967083794577446728003345114623489307504514074428993616778264018832911950067257533320324379637303667179320695684341492864752431187059284686163643431372146005413944957488047611328979685294824972655576939974991406765330211984863149031473812598741936524006930270609703268341079315047053841474152441050559166584545046904839276970244228960824018189295961142331977643166907816380871386271044993474179471212226374580447451048446371204738343585679042506047202471502165880718418635575453236251123934970587404276962727629626469635692959812333870907012005446899529025027406649417181018301281214896807213011993682240473011721800684121260831041950514396931932224111798958349476683918827159857950660072335262461203972420562085957278063494674663207631779625312591254616621387588946805641940355771976292444604875778925865020223544281285069538047956778130545456684868735832599558978037886993657655391510505461401113734406989600942425540385013105047764933053921705092215266832804125327783960399264002229249275088247614742618243105597717537983123883029060954825673643230055100468877929225932177289855568553455644645336443905550142686089058144760652897545007403975849232767028880485282881120601009605971133831329177047079904007374244773970439939869658709037511187419206546679236537736063411978286081690053516949060335238449062007689095733785597655807043549751362584873421672978130793762432403272242860743936765291831342573032114465002030315440302944135240498967732693054661082860810822000417305675633146567100407221732770414480489854398437533662433346107254748647547445336062039939713454274941450956446132014315503569578764323331822745970748733439957541591910562208373284498949848894421555138246682863567598727226027886493804581332762773442628309568974255490970515183202487174804563947427301988017432978268017760589931786895835798656563045143945736123929908816688323946952979575563884902857085710110449023316142651956589259341522267309619935164440851569552868696918582493063160783996958711769323560755453955307865904869601587553631162785297709150787982636058809348425607092964355923729838945069933532727300053346489224855123547296449320474049290841520918911469144841072464421559964301718237450401604311979718219330004424103254905538527569174300220671765448538546156901128662237955259460864538144467938067995182143615986230379588813166746043853317509192620244017161635254657121637671459208576561217895925849716795350543153652484463562982365356805260906223153718962693437132109002949967928430021889261511486453147360479569043891787188426747383468843702986579952850835079928357436232057301239736382169081147190561970720138243156103070130138498051134257612945852647155798243860758092644359707691401903050668245132581955962399653699838080407921310608906509007574825864822109870968596905670021740111983709211930281404817505024793883844940434793604159352922580441828321940251626265189160474944009125934295845802774005709754807085269173775628713586772986973636023791187558710605499691398749612088576369195876290115672089175340519170945398658579522294136156948857896446935452326840981878993781882859090784496055545104908824044604816507570214451408587126827769740392309546639096608705369007491953879482808119553374031015212983304083572746843241058558909586041812122681817416979991230096404609363476201827931056970283932999127307582853015229490423131701993702816623973974141915482938196292298871962237800775612667204100736952721546467718391939868856401533747642155099514251248177655618639094450938949002098490586167814287284158999196159737750641157877924966216500682663293898901455769827328349062933773226563255664452896509680065372022707870347057212284752771451703095819634932679508569691127237027233280533121986097276575361390055545949363369407813144765760501077581684235222669721418528268147345502255173446664502657858467825343460254983867770096446320014574711836416962310927568112161766285718667003469033452264858824993346250896169366481625760650953682686474166284289393997701683457315548353770602506223444510006387460063857709862450848320682894798533855405113150830261136249209550769203427199965714665875625820929025136921308748466615483049581561285400689889173382325259103759290141775453867749841004394995524577133747935245720966080217317249475158392004907285121406943300210937610017262093067429238914576757166958254132934316184128826413587668975277639705522814335298130865213243432521539565386823442799085083051383701454235909352614041332353381262409159958461625420611469506153480645505662148770955994038296449133675615555471863189315070173240745686969589582081565047985421051131146147976278726671173331121183824527113703909070118451140555030302575392837076354481338910636914907243727574961004411152855443621758745037426092399626317626080060550937844696204229350085861191297655826279745571881403934778308749797435575589694772052226854833167413539683331315543623050402384275895232627162495991542945419432622622394735659150045845746834097527477289223102249416666335265922271267224940864228031924669094284160314284448553572089406973493108715037745768458749143740095763130536310088089810109432203314962765297736236529696983771751781068392569284525626671416503470420295597160865160623309822633870107283520402134200332252948698911635721281478737768375399516800531835936342841146407305702572231076593365379993520833190384994938971078490451133659762475989881989543726519656328282596352019837954360366249844072059577652711504603424602892860630773002617641251020177348169333496144539243867236524764954868952855020448595250707509395210854651752515553715844845004684995606786165215530398310085483862277215873581681754580791403840398675224285987332267536158830789654516057061917030169099664545203473841336168484373053654844481675981900226681694375155616056097190289865274361305467826943664869399246189986087924104854339463198422975044745084208716379119140782568450099539344823200128727373765074107944874540609002333017793546606932591117013432081778518204323044518931138585142727419385195633730300157835418865977326813035335892054876117721842921149184979800350870016724069100394014984073536537448008816049254940850557233499348749495816942756349635470467215655419415675935328734775476836662309024339790280986896150464276550731963801496367012315165707659855835793066139074652916258883465704657277636283583545020410215245371396521455611827975601074438629474129847295990201859603182737110620790638090353440893696646605324718289560975635748597141655541076591992639863372888256716187914706382757158601512332770394559247125610869233543458291950849269849052730236271650479690205234724190865646189802189586656027375620415326470370329473439804323825074457828951407296256287233993317381837609311352592005723010902471422995408955972848638943641825197711612333271835059660465514053265280662409913260068770519659871119853085387036675598943024294359175111560566914240161743085481979398482762658553854408877516861998573642298871299996609944413715440885085225588035785929977614246860768723644623096938275519075799131543523987212580035808715522024461392537387403810797407053800101194618138421164003187416482599256184064958938601110149899643244396743210999889306048392000249992264047586700324871207556751793661844591700366028407281772303413239198725385211775156050178753216535760290124025741032527045267987777172279061592927149535596288851661453355246196361650305225249190222752574870254599583898031401023072790397844312269356627862248190022929572426189242679336457197722715448825255384896283116123069741495218690535323590287203119200904741921650513196064262680986828508441380077632077478223755173085983836036810087027662476469862971509363497244618531211142459136970453002860142384575333460956404295620602070538815622165100347565910905678518304261968628540425655824008188697613457698472536720856266840279384998010891656710472810620143885346120787704298384899692304181432924984517748633717024376361408594355516960173911632183996299442301194048454949208631909302519856050044754358868246485964365751205020222528491181298383093586883146083346530239183701074565545325801957394917528186384901455769698300498416347570353297459586345027387736444848638978194493163908627556856083045810309131579132578182570591918511223866216759646270005563003111519484262483168953241957063693453790873143829155769356096069161519211453550066507233800195264776925779847320622629711915342493991734144298554398749992955068353176648951977698124192667761222903119459561815527298707284833327984958160564953943838597576066206147565862652315340964618711828414998029894223353093889504181707025076570879030412786656263298628503210311334355876760832604803680271412100365845774612106663920686694402070482035103039233064519563061314505157555561770805674998232114262291838387996954297595352354293269972373316242085962027003761688742146071181108356986948884489788968922439310065523090309194343986191997380672613205872663831962734963284708760523637658788968489863054896838528933858778848476424395259812366793993500725682496391087310923997289809571413488720365990953897756353955700937272705447308024672497538150344804788082134906330066391202448924120093343131001275631083292672527787934699010361577686560246102451926607100335705602356033802060165697855587841250219019144730920148424619457625934033061516368462174122963347431199684513846513590741182007377614071759392540348433218149041963038014049933782364685838645918420827523543950972788716048785740579321398699728694464429587379133131327993720520764912830776817759417416708883002487520334424167813786062739160039776621157182042864511918787158036256625174094696830508873772252258645157474578342448994536796181790197209539339839435964881936346430843453918234236565949685732508318863018688382821513831222336537289911425417795371876617954631950352786084611859773491161909583230602856679916247062291183582231082797431871219058782691257993804363200569476650412246976444957063069123357671812573668769132852815067395447636442728658434557385503497610289576651065001458598822546414723648788010907417394020694396756310776860530314534493375567450859352108217847322314278022986940128781050142294469280978787614375658532604708378167492137400245303402023029986610892065033906805702006842569838084581887851106522981912247117457922722422127842940175773299455939147164031539140297221737163142390517222600604752200866013473429052713551881497107233554701446043060423620697522085945174693597960156368594499945402622017891653170123693756038800678011459506771986050384074016018336746035597065286338693837911159155202206531189933873190732815191186464345571889461959185092376231928159765501606187783258992565522495964045780071256554754487344804408570789269173176716668036674452471624171684981531808002743201122204040214013811048132073852274960426718607265857997338821897142559944956944879153938974302780178163775809793001727047260402597007640560643588888167423498893948525038026092351620748885070248545483865939676348603450992187931765066893648948750197393964466568717799807821372821234001278639583251484795829600991801168193946043919214942968059568351388230259769669456916645299653538091900341185598721563192842796690285674676922313135311152154477913805792497429525686296529282127185020930805547309875609854363413803818691580523085353828942138818031686008055513899373725189501179766590569000513573816005718649726587447672671899600626620932029552577296188421246073045248970441288167228217694506473797483573591009075460777366305480576600980335503204329676607081650529780693996774339201059488696077220885181444580405240372859488946039052376550866116352948768637727472583554377645672388408010305532479646521383420499580724253106228998045319189065970318559425722718705854110992196093350985889374217718255516582478707416879207352026160846428831479103474456192859884920539553985007784173008984688695179919578187962480687472400383470524284101841913130724106274157747582802631939901733907698219339087022645225010164357816459654952188520535735023613653668766087497340356105324951309528477738801797964867757490170148664657530037048964861470610486383355520514621347756327546984093770576408722054081566162466705032499658705783683732166998918124122418775363294251870313974631831694790783632804966739549133285424436133784276930724096331987866309568986059407310997612515894303987987506943901418860538524429413417435778664728520562491329026960313401952921520243587248699286807873813844057686666329462271767328509287545129106610572752139048377003353262548024666536279692562459077243558436081403971591901666039458284646062504057973077758217077899281533150740140797818912870888139754092025037374766336252910189366015000660621612895939971441538703883832026181199447335549813033228978974165020481808794587352540683207465847279407449109920581298349784462349352735077030421544800824045680958557590582808514008151755149624311808845809298988985394656675713512111922364042251040270581889093829374750777700836553170926140485754243405568772780920242433996808168416389621575637597565842809197049882601817165588156969944525720795987936664466707659224331666205737645147379545064450001889758880679331352527204784649693014138402710679219302783315117638839310619624109074816889397071991268408159965371698673100682156175027314218224947708483814072746401471926112565307330053059085934570581361353670872277308545153652097235846605355225455192441777527949250953908862296102869956797444161285232313555095925271193203891303352664090851211633204357059796632840825359542910530698174261364986235061684705094915475033568542894934162943676931060322202468423458672511337994990100126420619080552334551156298415512805959857953070315920075625430906966853368627212836317577700903825682382676745655748180627579648958567566337273825467937332955916288987337392573197024751922664236445388410152834228018359665554144380567336175132076293662936210257306416547569047441701319690046965283519846092653482924857077373924160066508700574365794108716180063890879925675371580216123741408644767953097199600581529453962796082903823230788771538099825752167063196287726192691681599347568050341025601144023619289085613686715523396654969635796456801644271988370882620076154779301918928362178608462284049584703061879936901874039686856034051288062911293861250760398767529713026829668836743646267328631379191914771822252957904043876131694385061145022243572126961024532122183988171617361923887752111755497752486246300020233265745580394080528447901245485900988198873240981059686774419326971293589382625197858045854892323918906321547691808337587578165197711617453427867678166188417877244060511607061023404243861539803116677159449879452646607452709896406281447532976260710209200447665021984186363506758815438306537461644651888371717633584456425514846367698488843823989013041459556708070425933499979556332071356885085637545331689319696739899071720255022274407832849773168995012103417641424258546579379190264282666599499202294452966188621946812577335153125458434124752054490943118251456899535344093356611241692473474895155048508328739823254970289891308060061426991535368015280207293123988288882724338103852910238193647368865880157362237264625912468211657251400435354851248551125787765704715796128210775978304496432640846746686286773309971734274082118218316618351508443218301437472893845415636197524579646295578108579480633053540869209389693858844365820573708346978519036485765229947143177614475646019104905296595161091827925480487148215539544994174792707151691780139364797164241201990491833310505678675849819553403747726609780955736656845081347815034699713011538016098547506210165387123732102466024230618494146917911063385828715064274220536646063699284352868998619859838457341066444030386270278163856666169443077437231141462358670025067229883720335426674355412496033124209420804816206099964689260693593939284142584103956085606103795315205896239634167475526518529208037427444576412924164238404688073634318379624947572420978323899235166510468492656278070429460970129526607276050571709470448860167926309333657442080539063355687153669295786396227980351650642845620806123063019456361166449932376498365551644690337031210985316165680144079294362210663497759243705117971155549941540317344162225392395599050839688651889507626927034626581133825601280694839586895772851906426347776826312709277285479325788480799751664462929537071376374553771797179414805862659330131510880372978513902439064440302671016744226349687208660146679470241733589695211108205332666664007398651887995075156117967260850701256377806776043099750310076166159609805907969109629180667270241014427315289839367410177308477322514717564676468070191809065946960042026530019691522496838677312342191160954315867399985003312343311267174537334172065568177409468824085015011902966741937426943871749127044591196151939939082005742342644886403063806729648810707137902144679375932076320213393331388598656186855368082575752156608378338291295583746992289139362076104720249230550370490729720677266884899341820876470339989839786356698201372919107935206887194518059425813938328398154101099091864931772879058252504523557535121972790770040657025918606643250570441011794006011628016627233979347530340608544636742916893535421265245411688812871541706891701648536944437651979894810033157048052344756358905580691711298605021317734066536495446234579556722203515250804867402688883489726917710115861615613033561418716785155572291026102818894798825755418493699594074739505794451249695151028967557614204851627942798129104809623112408748654829383903200352228232217440198844632481624712615593744615991641558242361951008034743301695528383955319287198143936141684542170359134903229906755482763189584760479703756725647040439903603994157733068823661648309072521098681685136580201384248502670322711236019281343325701741631910801355064297838711921965254931276989151896193788404603569856680180927687218875226790399154676784607810280626181046041794305750417904073804646661665178334239110905957539160447494394646661382335497438680469576293983947560533957867295797201461232956022823727472976326715725695217064277998742702700940371457020627037213281797780991136268674589240548236373023555448202043794491702149874675731209523122841718333765692504652710556196071650957828507196530386676730306283672599271334489141028685737524609626019268640118254205366678259113422931747087072097823121034379692882368951366886480072725081121782271510745801945753581914778967449244398479974253455532063144589481809819828391789614242764136065868588556710995869020476228879324811355999449159976708634927444761571427741021865916022308141256129631549586265300669616573305760957241180444598687696750542045745949695816465197127894364706395471020090076084352619087943776272629419263804182659366376983907392700261882098314618719784701037187230144554307008450244429394274171449346393619365075300434690027676105003050869406688650812863892719085078966256150297158807883326785025672903021466359781561866855766169674329503009766336593990679845961799452210924828453470330464178582162305020990212015954617409380903666199582458702529025796753447279345061886010496116214026450599378321650731855784761421250738626429363984267671848424250520010191991834239299440562512094864516504294395852684078840735749223868877764154162890780677598204177504057390545245770721950567684024766048637802071037181291799872643783288196415912640139212987821181522076947478520348104533663849999009451277772634582412974465121305118446402044822014220016059307816354385745141310922937600074643214804104645951986287354678587976603280130915543208067314535116797472484195694602332885311408449452472841835929437660054422835318177362530345628590664088583343104014688003743122619755481338022225340781517751456174137860145845049340430420695295042538817595784200762122251031320250710035332967239981940311650724637416828484658240460748016567113272710156855467739563670031135049190168740118039164389561681656479188717292140576059893660026094370447645706175297931201866063731174715265514844072532040620132536974548660443597354679166319597567058046434986030080045804423301836406589636933901335482942367119124060673701003760607608896812158347393209871322569317892910450491877002908541888518654633121394401817450427299782421330647360020367704641801716218838697805268382855992581369351669179732849117927896191688856920170952176289944481727147933925880133314746000523013495649498421393698246802002556787109620104805636264404426857668878095084916858300710776467578843108508982515134329311248664623437568964744272312520653001801876023929348280624637935786902738256744178369019638611446351295614254101699950913531575508651917535177830785160726045304733883098735008711124168511234751769061376727274474596923358518936815846869142324852988442943651851814626842884802555511837849281138786602262185605126386585564940439357353438435340843115419634218877809467521794791581632022496449847411673528564419463302078715295451554539287128187074724564147988711235666888212908224516999524147868409322217124485923804787415983989207693344618795448223398988567604878406549896884504304917039461854157872546154208921630793526743557836673824143053532263770996453375086941329102275550161850831642629903398317047465063437101776763609306822206847879409458027486215679497601267122265055617186023937145960625575998741245066606402157579247594492206439469609358153262207390155041400515838651107582262374338774084876021498948784749450614582786076998169079338094200629104525303821698031457756585513281714982218616802862144524933658990982802078563494999567175096295041802991730477874221737360394398242190523677376830826090545839435306484388452234941587984913057416366172119680473057947034829877421962068475746609296492548703854619113709005945482386580884782336690683651152670541897090401085379412569629137268687075128084756735026914717225733799613795537586674692058176721512919918888502413518231673632282323379004058073826287553072924445153077979812224579333173706192580753268160841833639019326635172261769885080447658435688814278041433875088744554396486050299068251654758967693591708333262553356499578120505970795923864175218834008568179823334187265659022637271116173002967172798614386233105138127099075895658073512469080933830735713000108173422840916305324838551501591300238758317184293489004847967596735828939187321459149285148169406047413790622565787284414310019066646782469412260452219823686805492531799436398063407396993144224703752725694653112247221940705745976844150637413712748777444505321917633899358921682856990455877929934371279429416117785599748142479762911582706508233879255088811692227571836887111751255276936501269641782498865945598297364632464470279241022272803305543592373383899150136478199366656337539197628985263509720375170874165102079122562563609389413022196815015417315879780793122363866020584602941225334359208219991281841536391517568003280839078770339662786700034721859404682546672508864677021113339089284535393268394046011042432747784479954377492749913954451865263900166186208672274437453064929018298994209846435417297789029131439772725667780485872070638791581560895327158234629233682014003623808146272979285671086962929315402073298761526048728609454665899528376658267724177594508439904276983912986534526260408760319381503286468807039584470748358603426002793460128916875220447043700725110104714660412959088110303568183371020268371298296645047644490213071891620252284191824818897197253604842248614351269545649346674866817606049138342427451520863026096713995063440618931670581901969577993900848382195155689036129448388835160256126930329132549878437008068171092501447442506138807822490284675579624403887483738358020358541807712554919855203681341313012010445508153670815058967546846103393036206481232672243052905665694230502715854704907388348112640027755271770543954250716272380394693521258200205272939331440611414250314502815110430781017863016220585411088210334300938203807031681295276661940520777921710162211082383384523018051853289351840309244022701313098161026596012162663098292923380753781534967493017006417234252824330487359859321510097132073966001263309723676009842966020482697093088139687273937403291075556176513897734096022428649591237107606648062656607742293176091501359770429899201048829680762949264149602357811848283240988799475469365062359438986331511259121541747400952994303826869059698881428767828934695468302159981742537826588385093248661879942003518888258007418280049290831498251246117507370272261889114742253740946798699116878500461506791770928851066260101838509023143368904728742064189620650988374935569458473657670773641141237824961954385467823617477956132664171136251781714056146161423262424216883484956073273712747883862800744872920125293743643872339380351591880452966924790203371051949623570490204565324001437325788221856193563881565966025650788989143182000200941045267539427738309830251138988323031290105690486976774533061890548913175885856826400289962067750933404966325211361833217524897610186754801070471476329840917173182904018084070476908227407295126206119152325799857838963744603255422361041074763543812060038279796087341164051092118670272944579164671969818718686301973422096970025532343165206097289375787781162902433039888162386380676564282784381464966439304119113790777556197237883017890973990681730437327603794214572461041937372767487971033916291284829406780232628994952556528294497073173366381637405457504569168312371746689714896353864952724754804937447389387639616437843412719110739570121965701426365429782239446605401003391994172762514177414695080854841281127132210454948312178434382483598120919722825122637014335212271893569969133367594219006783253414961378147550451945696409300245395585771312599604093883554450935458067005856107781806879299254003911718471502827836063831294284726316304434614022086476059343003890542363219574958255127031015043658316327018003316748439441651532078456834206232653868135876539822995330587323933666786060246741641738270721008137251675924441874635928821161218975062165608214505672632214682754602431799003266782359188955328855751527698129553161829728386898537081890942776747932713876216160034907364531595553499777980957510472362355587986735242307710332838730292497722375087041492926186214260645225954553731675676058734105782302446926310871589190159063394131714304757151397217499430430625636120636105285871910615699176753387778597002077459889411131229610880468676736931149237584888847711399687708249408561156949528883151809346093043514668699561942730121509044439096283349897921581321506185576362668682283581783597004222921372864100288527208229571760068756730926969981217763725998072268149491505172271857964210331270880447235234999328787023696385420138289509967278439639790174688362720049007050165418004261725600054555075086945193978329469433218562609307554557439044741228321006552135150904289583116767794710683496525866109025165657012785753650864902732874686811092136854693540295237049481274939175593875284414989704148933910600000426899763697966346219755252179760188001499670795336230565573345757128042103749001794526915725203816627523106049826919476478196819449748213082557136708456594153043151730005181921863411329906556707458172272724239177617250207829366783870292896359573231729460976826806103569185241334009026210352871838586829572357489901145389884839444893914070821879385833706579538830013282498604225470330666227943420082916426185978836238425649439251817909466828514898149821814628987994091827077097378916758890070650754964910388716878503460569790907431579584074033599460731905131439337695998907776645678494299454879448867307227332068440868385153488233848647387853903993201616641309925551683849283909225844350690043889881317945451154225712228506389980881050833360141760586027964280594739216424530237493396529397912986606234329676184716395620014923979618847220489964561047408908033341697619763622956544963169623412408409905556302601250590860783726059998633850848657816121386679192756870484959784998329308241282786168866371767193451154596919397282038232774490533606743753960869311493661976831358622075082140753822849720653918013428266406245654564278389546699356820083594113758647632512095334890982467493290653549106229607059691583237992188196735436372448971324063560772703476221605179069513750954519356354042313300244821814537911626929950629561788878884072983207778576229105421958521977136142178379140583466302863894339864231507289985575561637811365201356018746607208764806519007763752711510290143106944446158406545005817267983744290430372005393639014130810989304346105950113026167674746904219049259662974262755760224087001642691037081303527544953439468533613811959543338181377984107781246560924602362962327410672700848860937087371483831485280377163909993045558953093944655952304416909640295719585120872396775339265198754221809518579685851786258456002849395097655693367504488180459117670057348541658050127566590728935355425781723969870718528457000622337888929819511197158893108605062424030923076112605011405333810963324619697007847955369055920978879063176595809013403617195737211676919473602024667856663401578372057076024829537891162490626280288607659175127527929606494953380982788968808838331829248173424320337646908830929979932615597412307285445424986508244454106090224677264207340076354995544387613906226854451038297959386191882762557812029840191432482852069968368451108104266520808318640810506415136723251283213973454175311146546726616166532720275370027297653031024267167929768276054791537212124710559226249821266508916631783834263952209568121442118528707366209742143048235496933259715714436252963604589957580373956583229811940408961139554776531297559862532242588693125075726665129598181803558234081222806682675902255752689686258147454596535390354813342608612127644964749250166914067300813871046869194421621123517428352155960796043206541863793658716416651529373450912821395835584300354939067548103488640522186724299812308675629876648281303746104806985405957861532304230020645921872061616098897410785689869734436014639801340543598101218350843934335490771516630308779281614214471480221011349851966284488496231099743316987256757040599480919566647701598693995795033260113905572680295140319575458661619821551808638686677611971215829901066683224738242455741221691527323077035553652284943397005265037138016974082891737174327811961789032156384000170833483292860232368521578676637358234721627119319301345065577532780873470534430595939636307428650845798699807266786686720391642493649615052427226077669094659526932983646463180468056642527931083183941730804001786481720972170875339664147564582616309617785069253243204977808900114065807347751703639534975708309072329875676285344325129048043144549932466533867073170600735755874408154757810390239590391064402653000529031328495180281284950914090102875052737603269382298872836259699007325014936367177398450558260743597191100313575745897474407040049565763932209324081041146379544703611986739805648004306205474463404301684079925200984468890971751454945719512736641041111708437926965026398086097927379217983735573208869948509470593148290972596419134534309490970078570467002275117234953888535538995973529436697445812099334987817391931597389131636958390641058843042945255354286093510711901602697654926680056627560676510450508095781219249701601813659902151995230640049343514797330323595181634210679631411465593055932218938163157934525386306412468485412586551596863644850134504917850601752029774003536691758783628694311182401152623742689592828060305951544339751715586766967660678026104631183562765317894018698130380099930203839298056379700868640106596846137024872496304947212408272839496073625483943904567985818770768434517288997293320142310091440563541494201651142135808355817754821909717531922904224702849016530348525701819819147292665786812678140768582034264675097362390619558631463773893151264085077864179917490731792929119861182011027656826349228280009002983248940074240098900679178221509657260680286436026069509688803124761717040131737063288966414789375636501200423764488589912634766988415146595504729475881877263254792242427872240621402868460455167305231503678589946388023285441906497973146403203018447542199453280159076914902920340301956782477268240297146888799302512986459863440928993509045674961146947271131605606720867359556732594459221249594034423967410552538266152880203137976807317496582679372585550420729513433121085627928634035534614885750480267897949691531054660947141780981295911851197049240200450946589682566260703358067039271043628315323174061785588784539572653347220854665601613113725530426053727901731665298730507529432332259865442610371340423277615263923984163083216547751081753429447250802817291529408675172711898709211029964861199347010902894938712102842702809950791252327854124903654007799439652468593181562977437619694489312740294680238559637761535211931545069381135932725431001788492897524170204283349794668545142800539965879903906244941717211730186095430211535941160192328490754972624806019282457096289218906337749741716216015829124370576998900395405333856798645822558791894230102637829793575102757669509172464935454204179437276074778713650165539231993911336029330842245313318834471172702073069478683367772778965754223260193373482295842603197587737992288666543992682990660656132674608991168174421441893230715965264054484050594826416556008507046788245436062072833477338618951367880000364412929819542382823441510388797488719015658198055067382611791095559839393241192610767645657953901912232848064482479001457252667392047108532480847395792803579973277351036543719801329759722263274697732206309640086499822209817993641832596017000668665840711760644791892997994495673061925755937346260740296036948749013615748133505096788904076168920168834182660702617970135255225241905396795030322630762358451309358721264438883761374497162466747177939073836436689625205497615667088781364003113153052788248655245565308412221342616290854630178405626039569282232995632257844587153544017371880795483482685069618068298081888520267530700403518489632101472880375445695948978691788548039782847044396628018476540237218604125776671611776946866533495690852412479952323274776767873648832237575996085909824435367055478314875514330455038393410444385827571403115777515670531711559815939921649203674792726361260860320105537715876260968392851810913273606893629179519980887799737338659620484469174043153169501911893573582357304780156784584526135172681413233739618539504348704870330083679886276822014698438161520130311831645722447400050648466234833835041961774780142417815975413190651029767331082682421765100718773191317324362886015493313225605345789766977697057364248890516020060387589171438374868865654870274801740147440905437550768305988980067646464271407027483324820715719098140267875949521314895333257762164097963002716935079527317061873030097627798177316275515842773585776744393128917430117938510718799674717088870229145783807374358118640546855127539739502188435172751900020060291931572131868469815418142764679775551316220660439843883541544638543521011789576890933043770275502815059530009311033022590665344313672489632912840300588829209513600353070708763323216534477428166855216955994366221561301633237036216948029244469920320784850928796153675459705427108758174267797250541227640109940443188728749967627254125393102705602045484033525868581628297292058845869248707690095069902318930710208579289163920135062985590572306086624740727915346410029327405922252047084617739227167083335564854069081344257798404820670397717834326557064408296824117890079384763348333255352792723356508902797584091798586094311028593527165134471709260622846104914203257847075647793277394938690004627242529230800363569954689885813124378234700260001462225837107872256887779746693239331587012100942368367460816672249181946396432650693717408515809566385502838355197134522631893426867502360650744851726686108401951677850841499702860778163360135110158978106776978394309813315868535534978642695739201008966479337672214262026120955386488141290154356171669130870204849094781972768585572602946148034360086538280093865409406442579911254529218054620845649842025531309918283623323320364787008439650155945128765820999903347005317020627745950365002770046925926585086908786973577047895859226204324973709417658464226711260077563747157890793503469289277731695369943818364666613550471663537242349045555916777660949110192979264890581604828724002855686941467378722297982893910498134349995090246649426101732386127643087213459285081316151254306346479857909250291075882828167970637455305620539803051859406361541950443730003809033554229806605776489039968488660187164448331663890860249068289375405232625749702963607660384906426659799644194886831702913484603716363308251480785907606672048146131692866809504947431345533504976711415862414439852218253460804665754990729159253669101254260979218211231773879871988810062686996602006186544041377158985995376415826371808894120594523744910275459427539547870275342746219676289082771547475695973871738062515353480712794286831828899662756544658949180084110266474359648184221601425854811900572067947221979341750912035590083232584127716456200485510563538746271314943072910017820431695142878405647561791565446431286468320225653662600580425759208930556804584348895131958966233641544458896251600669960805723460013300761475089269388365047681762786188593746916661100798660490546681432846968813771908998211163423529238887486524104699413312171972575566962545379762940194190920031727558378999279039456845549771127883734099219968864472789519404635377251734446029210845244131275034481181159424988649144330447188355266787483527870701315525819409719990010687693380147200997249687277929878818027781218417978837278133547708193106191014293741034773232588434466182545392946649157937945294546068111704303584113321003353738215319237571602194759035891044121165038212905815672977207884286906571002210197334824131312878553937850057240082878926190085556273851433505715170549670428112789115052291547905671574266396090522456709197505508478437076545346881204523633912946096848217138271287337505666044175068755369512442976652492463016902682771249894228541155137884134825851446791437774744597326282695408817453374070163250311202244426264624567055295166126366238010009369456704721401127016412808301812627475837279483618961664037609024393646338787415854306647382519199255645571332168936337328309728750218874770149698538939776288027854966873400064373913256831894985812991367702199746843176759310043284450485671699328601417001663627281837990138081059518955333686613431066962457734985878575880110746109138390940690830605447164964495824209942747169829537011148739181700542004701749390121708360139568356623752643076252547466923462813976089005819871981192010081021043374823478972330198060663712016496053135771234314128982365870829147248441019945718221063027916139437457547176567619996001110831242468589376592554577704042124128678927667660965809964266242493494148728070660861655571545606218977768821451513112485060850897891840321482823954547633873118993654365935255119363612473857729150295151336795071576156527947112474528660460042670613861113384922071445872439154834519098098726328373504465822980030281692580896831865908691089476564336886311136203662586657731708884783035454328526047987130189119881013835947700849187290788403316783483681525019061697744486934699667459887176585521220930006253672918241054694704266838550530926303755252557474416072814476886711905953961410722212910679755489554351722097878359633238652010892545316748680084119392566374065444983769710265149601718195626505324909068608633077124262815614973037690187770297638347536683777620383508371345342943704404110677625811521791327608874520835993224093241153711378302197126639365225491558245739775441147034276904302498115402687699856254549886916456263115973749269042103683732805509795186545346165133278673229683391303923217845335714061908872470897696919244683485705283851733932643378579601505417907704092872258583168364256801780661270472893159915014016232704771927563487119035591413797614598383712789281802954641462940409687333252150375674752237648739018679885820485313999221355635739219910929331046357490529615672636804880267763156073919233432301296473033467432006628976505363326907297920083145320629881201656971276375805814440460004723990094087520516273188005475001117752483154727148252889764523833382759754329650986428187221487807291844254525155454957070659788872546944477808646507858668969494077738652044868645729660977299224187778748358416483887036813874508504372842926974227083234981932141250207008153334135558300466801224659563036053081417150772204695186525402976447196239497803763310171389035973388049340749076434550907881151714250470628486809625774899873911255956764780219144995670095017212823716546093302704762752009775501899721529793354270947682125840364592017871028797653286008167085211985724597199293846866238402018240611871813118366467973904310999121107788536953302999065882758148563133714646899487281107740834878683383049432286120583824399774574474494760487557787310996964734729240590523060779337488956206581272830744524244851014176188870926553456638183641357432606392209511912784649393426709114045043383386944498545960108983308052737436423558504489565178607118288872498308262363378066165728571343487404933985277045156466164715785304497571535412126155216198518212657493269223357676292959470879231689297088957646467090183088973263770238023463186349687214017299765892253665854729326620599971356284332065016415269422848441124881661291398115318562682708818694827042972049886120789062240907777393874963439760094105482624845232951475931641070577327883277088955616230475682848829028333682435718162775684017778064040712578496923652744720953882321138442057176073915560453606375411538402628983913132489870595062454214673180309597362538129794430752109141615268974022426382624762626904208285141337183591240742725455751156228868546195514020708538553100501292903597694714744298892895931361435267136355218778932201144596961458178273340341576836392802909863495942889988911760210345660999939060822202246156986067599442244574777521189544687124228576831968232616558113418666552124418156686845049000169544776781878336209422501387632185812908481024789676524284011543666776732014998614424139579331286545560353429747351486688676213242329113727509519259285526764644466767979116855840683225746348246018263772395773315600444433598337447053622881455439038150666402398377835681116473260902789727952584882693174396878174699522275608080546166709246184044510729460225603151984754012487792000470692304006460132670508979370576647791511158341508784628816672992840293542313239805902486145347475624975415961154498901023612064851711217848588740411441405874690614492402466345337052747276190489139238334869911084362579206778955591819512093580115550301227798313691729576856826619372173319391343821039263198949086637220843036734321873830618842965643381287450675823334439944826737239685624166587585638093129256249858967782234609600400503050154896969796459748886686670418878346212272641179050463064724393853328468359146735167965987585077714352533935431457629466997904148451283530705821255814808460922453006395984612600112806301598699666009731841961254905936207505750211313466827341637334175215551969151467120039234101674028399237984602645883131001303234759089084579704495367412686717119588896910341838933493564052631052932101187194899578314889185581838399732925687849435992040013139063943732423486117672966674711875113531053633254424490515874045757361591257648007038932204045022962120191091232024064996784004475630997615849250846008570973587132834920762733600969222069609387233522821002739879396720308165510275942337700844899834539850448201839078161185990294676806217174936255512862077940390922265621914038472338752388193025013297896843836442868481834729863689603280642120338828968390135501590963889631282276075982036180468282495014404224784868756183713932599436946339197600154053753669321622271648280361504859473124570964056995640596507638749348301817802708606700420540269159786793069196392918085302383380666198179022326899017255378957324385955574804399948080240599045475528987802011861329442976041154149901190705135239931077811553226861810219141910409001345706809276945187008733918394671710614231855746193272338214427344544650869170886311527134143918284857219824660283281869817782440966083648738284707436435065667130304841790577879848440579429649819897024533358137535512855971037013578190542160322339280747029195578141682318775746297304604476997179216450449004060637388534779292081943435535562980068950579894035236728082703513797877071663935163335717542597243520528518263511645159778411984605452836174847971534347851232125035077785872824336802192611496620373932930685712584429952903114757675395486712028703054833909903997995352936733242375449641591674347318077399844206237208663588220856379286795148641113493393147825040949720987786991945818448581200082018462327226763471846100148105736458689650828755323095338593773514693106027745406964035243342782960892912958824966252849630841298446964920605521959711948834975933968996437412910768518260355813461760100813716069518488199115510422002732526042806075487997427987869756939706961940185732236894966810689973057199959559141517591181627540729473643473753554185675839129911254360314034106388628510581641557872110096936066367741693461118084351953333538408486872240458714317539107547988393725735844329262219842883893217986732515704945410517924888190421315924450842045496183152560916263752443939947015859620382554805206408547216900503331402393340817840117535889379964393933485333983078047665250825133214392053053710409150724992807165279644020829538399040396764069906321672892527534788478463647267608940932836264676891090520985175128342881214185372327791155808288316458102603222449774802623196657834277296616269699361555242190300085943931182171325473139512940795097791808151482055093863511762427519328767663823313990996929585554159466568631942877378269239914983821396048364747530760619451041997921674837625699100033280027316700465335923395574602288729565194993586189830770486605132542959821167268945935408995103246972386833919282085246783114348636844306666547748780945423743500209621989829317057909028959522867413913752025180651031714930695944155537359459222045521273400977514434740394201196625590476130339394378439004714639595492893433071185084596137284776606336612408862592100780181899850173993129713951015344282595876149909095911782500224119836166998148713662577150968437603528161547579858840351997889742201181403028933748864288908121229387485689392693954745330627035452512741698835157940681542298198781913894827528229239518426851509883470166263174482277449846030420286719399338697349584081626428863812196265212038809327911658125943084112710772130771109330786519776495131594678330943286944438554062688105371513013267358735207840979330286270342317791649434313526393519745577106958203210506144327230291140901853826025399538359093001710077938206861455400617730818334866283024778506917856997378091915980436489771236620799313770652247128660184685749203429244081396368182745998449306979763867812594272314595859623286703950677515932844490013098486204088637064727686913313209961360089606908389942229484388903973015370358541426409070552626268350688320648102628790480795054479035805560110158657435023816189060761574948566051372039662638746299945068489612500834463877641330524823925300724722180352195651627589094230020299550116261273381994058111446653235613246230045358120833559236771561984909720000458985430543037544931339505625840618263392518993580885157373882916162769831157698848526505844416923368720687350358213680624400567996281199859225932559686302662663119493180979751402622137695545476306967507641986444500362261658514924399872619405847100633551439691817813355913176984344133652422386326185811549358964303316965762010544150379594430148639253789459484227466875751349387601359527150921194949800364082772514580249838314164637528969056848976859217221922678833653908571588405094537950443039197616039590487915232641578954327038406507980476933652457297598297572417126091019643530614775648064640257016652931076589886950081851241871134336105746076247216612128747281788423744129177664896757304536828995320726806671499235276589240230515968003375629039109213929688453522243344103791306614702534775857501730543129716407375953613329455740087396894152748140485892839082294013757498792727631059127197717816146506354819957350654740664092307719676124839637930495479107306614087408757264545025399429379179684284183594365017192640445023635415861792241184804738700096506625870232114444239039968202845889594688077722157940151609833916783080559805201379414179512500525761139757706392148306213101730296461080168065767510267966125596196756854167413781597311392126256883304371386983616330133890913290502833192869783539665161516305380925563279957653002329662502829833396916235163445794147928171104703101182248493914507133317462367345767747122538008733463059158733541950737508202615048076796287900787244376068933528785381751561045457066621591701682827102745614926368628079576629775607452706719059074880390438202568654493971978767974324826060085988820291611728076119403101392946180600214431469394239553121965285164841307290735277349082340529485139833674102443413812670194398380837805654751339969787798195429731943962391790220164842870950836213419498310187901623840944767166608929961348329342613097654395616011877092724066511751371305095553437705183116820527914269349134787049163459262525349760219667432441928667504161286865644531427526718290618163872525216378319868973633079169171368335457209106082177965851560948902331020017708717112216344744063908371149009157799225793434055292378906237696088627041852804668426042498176014937170295185805976069488500082330645634914929636217475090072157407059537225380228544741363403799429488794771390799544290769478634252437804745467870809246133204847424120966079490532917279663955219976719069311349112025059381539949842976769222195676795138791771251732496926257877820713353545689220737559253605048253293974148563582071929053317397972160970533204905617663356035047430228232609621425871212965042368050544582126708257213664076666722709052196160578830827144908276480217241062890314685543190028961529786976468634574286034385403993842621138219968940640348618733716693096171674480784171780153799493821276419756057394837033394860857100226084779539333821789024343745803356000209642430458294523808396097246566014795379034287736684701410181380764839532636015196861346565396944462648703451797229336563710986283084252203246250066948325578221909035226964019410671426477128296889782228684490797665998059252942686393622328621092607938945836208569400436261765669149614453781192731360946097125918770994655557394249929944605171640254268878127438526826001436498637045160931332066146853747584500018659344633321545745545855297333784674076738111272242045348176856478809405600099862020719038230410199514988845362506014501147578813286361557969162127645545932746863427664176331286531470198770913782532816622539785995006563248298468325971986721726189175705135592138448881616878668519241840326347740268645277320100660883539361761195321382865782283225062637614609176396221670830118803440113571785626920535116799293354239824958744950764253063272761095214325134795189394888180849696398407027874621287875413012021560591525306883263815189230354642879352232996545977548805768877232916294459988942096982607669610320791580155783972636375036347180682027164724979987182648264819022796264068083359442155459995490613148960092469200395273875388238270274257693267403040828890152250182372937119588155962957662054207532848988656726242271709452988451937636853789326289221363636738617048416129515164986426395699321099798887146257328332995435354396798344898465100850291271176042718071543973154806314694747409422120353349671806559557398315623006901280629946357937740071148689854589072972365135316158153272847382703068740266181269115027837118127027805315958211843387873135428664607782406248960725021076636453356724549708309251175513147656964633925992432600324151372103422226876042724158844034727776479001857340200091519702968481392630962040524439101416767301417268304795740399685409574777850313763468877342939985883498266373794026619921354167182654679591499441402699763490556203157310486549554923848409883267763174674533561638356230305359665781777022347209334843002062757069841180914929418404281141497978236640908149607160823928520150185932432972406728574439016907299549099240139811260836156137211104557607577205430574118838894082795719328000469353132612900533422989156566285566220873930180824835420882042398146651293314286794803708238808104191746593731800838330549819590422178522066007245898982343377768944103497467724644074173369421500776096744551273950626539373804326836220224186620585518227546459194924683081482430604148568885913108796171878214873553918470341472177825504541723134669709642320495516146277900076009492005792452353712828647662422057478735439572102282180235053584312911582967665700066260703367943949318423143200408021816807708949475945526489840808807583524343477720028098711074026172395500738817392896612907006809609021314546734016971472127082122879781547881860072571896915788872523370817547999047937224949854045902528054256665475660233908281405630434612525286003318922003282522619618028545519089335563112877539999729580124805242373299014357416557227587476445482949541709919533608083021047927079302501824735492911788384870622202078009901275258448557761500283717452856111545632987896665338304343098287492089503452049053669834513527591565436212941843426607609079853509036081951573741839442919735365705995167813722617469409617646946357191836585690183632970743488055825446554630808018296864605657202470181954636674477148463152987950915593005224164563789924926813269462216566567696095524320284062670113058267638240168003683937183332081155399462680530171965623833710811716106130173606445803977300080077346670182697020858969708046104763912897740036154209974600218377911038537843883199844671104472942739372085845756479848276027557523652626507108955703795505947666813740397742261848075434271068768589981398355697334504120416854175844652495614974335198333406840930736119666814294480183075478337412846893278680891309470939924980902883822748074270805359807391027147633644988535337564588554968239359291820927454384908797505632633265467447081478950205198725081896417152862905594959999141703719804089997171674358600506939980294892348241191518601325691702585664456284606141588638093152263450231123333390647142229244791528063620198080657121629752914789912111234769492207237631564957444600284840341241479369250019440784123714049846330426731785205567859637024865823428368544187287485188366309250260372368376816404702708975515187445963448787821717999141008307655969219916390199107620246597863662470778801375062463671063096692011831801598016776701529968544775627442142371020308513530496823692544350237297034105644237015888014233564832967522524080387536116700060355966493182952578295300932354559517494222904833142367116959510281099110095929058574065365378254955116459523228748560582547878247870782742292624968183316996325281834298507753108171716954048307940584424113036013613531456934742010487339082788459636473637100382419666882509561851368460517207273058311818998834256509456901860377361368265622965651450120509662780302203122081262597358718801745300511919527548078799843555446471473935351045662276610305735346940029572454091524129486568171605359300958276080020751828294113793055945002694817893455072170529250115541482850818935925943343110357906125482346132684210037807507244480240783458735772282531366900388347750532156125556772421955843445017031152695266345804408291600520043575425752338711316586038217722539230046314699538215531941260500902987538415186378487263584280483083588485516475586753316759976264865203740683203355521457587390082471411054076943976935608572725356059804977642202879614727001608250905464328468838591036225459427809924856467409124207772985828412733768812967832011127621992986862805913421320703935775357849052991787227851656235547265466916172933559415620742582616552491661174833832013881699132628603978685778570807341518394001795941649070501717317089667050378921408167239954217059144766957733229018680557904744175121598634829025714350651336628912806418047975472465448987268260952277962221607930882255139777647327333962238128102618456574654962664384733182906796869184236653299039714123714762479828666784583892272543056077086517704003175422379665611218751508861209941986602874195405695239226821712879719330884115962348424877127516097446622642485868141882864424979343822499768343519959658795743713807410367413849705228587212088109791526233787694146215528744992259914327935005031797963151715243338523781941012722349282017175115519410894497373157655145754852232746527070189515199214111468961310453233558869184426540932579965456620965042743095175998945941418243960581583626967322619740364791494146395260315116338939800489595643066504922927289863869303788069640661937329355344694985631852779317059150564316831347101255156142708106099184852761756135609197634981083983165058036513255685875801065737780097770280648374678843462567181349798061875799013646839570857094901918320200495383738899350736309111992986050611818626025557829348552031905215464063247678842776262218317299682667102362053751768530236991759929459789241770722642714673486096431165347194234196097277551498001655722991780556288483823333538408418139241233627729030074971178883899296190190964107762227418550681027117756264552902482304757710002340101491539515912086208724125235767003345666634778247703962837620032764487376196439600409725494069776369114509249700071442479854026033347559977719334659500160967336938665138853760387091367024189234328834283050956235212361240752701074489167335111317403768915631246196689649605177493115839868859985546656322041037855461810084849061115620015205346113681897447382923283789579526419806711787362091035690142984918774174916898041640271003334957634812527793905241997001744501145808025747994801964559937474946884039400914666289117060889019692865829804959778339008267792851744564140317634388920459312707214980975914784150379348475530924057096881025598106122987360196766919097240207956200623179872956597735480149109779482552209405187215713294776198188910680335253025906916305235042063776608675764927080380041862825515035855821693908784320420176594805180540654825342184582177361284054148534397311173155156290450501806353912659272823690577688710757994983151221123171349416340499136495900749815383639131550772894038215114751617406499882501765687943446327883305324747387040072697889517347762718010265571958138860612176153076848381964894942059649867391938658554693092291344559664270607245245592477427682650869461858905237489857772239985243986286442511595160546675337024105384796075378752218825507976757244168612529007438151910650980316918681189800542244540760034317575482954607384766077255626864975373487584727343149483832862824630558512186370598267866513193940016372450170951581997646528431033412831477331472100031627541471261493279308751274723897539600544794352970189517990669719362326802140195033760587217560246785449224697934877733280613620220729262003530251801895007000071400168620779450387364620676441868232644723498157471251944202174064368671144149548332828239504769805442441181139194476018385337521188080309480403574614555526388498842060556978088264486700487785103456356076273706854341595540561413265269505339346536449076041688122815873510269665384137688368419383545245797001495117390795533918734063572971179207486255831816047145894528659530292597590825662778738243757331924273718863580383962397016593972634796950975663315594263864860596339365460502227979326475166630697310929002197527201492912221643567569564203767718937261698157686453096801425984078692537038749697321095233294450692537265786276848941193690622091145069237146599138500472924630462237417066461474961266183013080247204995233044917458533808818639403009707911036464384016300627307682832872154303227335425266788212771192435179817138865537618193258480246241860721672483647431269603516213182989965297097105713259025804919215859727855913693743870380529280682658018498176723152200127806334999784048592631022084063721008570424222503598997990571595687120411457987491039876281119720531113638544163962221997573574332819100857453676680755688645371898660905728553358174545347181984573849134006056708068143523698710391644922118424001633118286328431039499969655528615628369255182561287856995315817286893937412876116580262772517718138988739362330855708844534909549520553029023991747860560204767521268629676864799381908984560923216224308520096292062779244985129140081458316571157238381812481954203728121236925051162447744055826501342723046368469627467308621946864139574208916253179489241909592123113535686516599330122146842580210911449931822002889877701185522679029406912113812768959875632500575172000767935749450082939988468433616556575925594379084592455099196040675410920726838493878659248299555986955318173496178826474720075771778331976007034824607521069094518620396025451404649705772404492299996709142643278325652589147293931716025069364177133645385899455410962635991849678613654142430152311128089987214046180385617992147681536137265243858477299394967467464663507212480331312368065694306980189888795397000305188486153194127524699915093797776300207529190992863660612781559467719440152521147400409354356156598661439149869126477397971142465490646263037756360083830953454284257957033016846636659890055550904645096201209713162054326706953564017444199987659999123540916536990344631674384311442802665427183023989512310488311886515100530879123546056126586670833187412517946749276896004315293241085394495077186194106668599471345070850541776963616662485819806345969690410339176210033281093600043582962231473979016814297769434187114993111776668506165873098133765692935272645392651274932004274891119345687963870494318116532116577723688976755539858762476663027766092266667260140516835564838103189214238930474445638344886589258199272469227802205067013619852290234676946104400013630534004626890540015143203028132163763977883442087896593998830068664000527179328856369316767259756789291837596501580627288003039923582025961254314092611473850346667522151140050519334994762093371712728524027660943463614387593441250603596636001928844954827622697830859924972129744329950664400327846610515655305610484036108406994927190477381260789088987543137752989391456448400563638215479428473236974094619358661320909486837799053164486073039521403263845536145115572891713547850601477613104190448400328810370333726689547171356612328266091406702292270089397405770652746540315417832331150453396266637863077336218406432831397581005845955429497577525939523375304088716770546720944672740555127954584071011544047615500602744646618525440961249061675498520987272323463417627078061404553787247061995685650674465137812316832012071292704930522403785327375023062672626635127246069370451917309768047873407279910732310203983113875633524732743357985429571513576775060512890274857419803018128331728422118706904952005840054021205424928413859571475169352588911652634181586919772282782904898915162247648166568124387961173724195948089394871877574498339771097436266894449864803860399945968008269724860672256946651704689806002981525457891513268259236046251889566427721075472998424827777748180220252878480547650399324274292952321572168673549814970308537036930493856799615983989217078669868150949666795993577122059390505751972017282087124662500939011879834131911743805649171037612994273510611033143381788299968906945614993446267449577031524906945253316507025048194507676875587947783037677019276851389342171314161173918461487665538484640512200308152636517915935695043764839392755981424774248396117411730041476597311015225009732096444560776988056648179133172624785050362276442647125575982571456027700586986624699626079590323633344786193816316829849112309947340069824764940866881813698541929297632715330506143929793826631184361130599562172969663882343533714114602232400355071242276995456424018377453930940819296180998109797211953223542196807334513242674869745691873835386200008143812351776024540335568251898704619433153030720455535826207377309758078444134282583356398988564351510049990121741341429961514184279446918206240626223195385512048771062699534768960588545840332795963546413087440677264430603550549295109117265779368791515482573324351294673323780023564304968624208400793675679546378226422917362231851176034529054044081423515617271551198295451491190671910217056744454361734138501506869579053374499857650307347698220716567882972425748284012342157227075634103081644244716849669394969768097131745586691698441302872662173973071535897571950175668259219269829898723735196345166373563959521598559193748184729861046430621732989364903495407278394632527299684602867004754897391222554418026281788928187415679790523360226891144813969414211256905176419380250303767378084928086825814876752166374532522664587794709398077733195311943900483881678433892613030542046850148462154889046310450652508231966026659521317286615050714429585040691388440446670263430235077866236090759275577370684848935225740311614851673363325524684836700609114103563202798365577755119804655883790781289395659974214999257879740635479507621339816978785965774354317794611660542512167973157964074524596796016308308982109600360445496481389534057571032849492184217355896175641074473903875057896281496263444365525830087176037223993970886847328161050941040016966782155445206531661548614204822527286631749089077324862581466708291531626039223106059522904936156448113941645334705195414073953476756801162401023289682284828087348313096384151151561952107526768880544327375379877790237965096875584323396740788067781501924822759286590939865659634004550189487722021441066638728501760031014038543851667882209515482654053541352770842821684364006623339050207534770679784357152432416015701981136522327143747577589657616077066859667730630832463268444098644972005319161318210364693377063257504353608914774511063362722346310349394746474681481396579862128327046243034713582653917214818233093014274831268088599094403383902502337158361089629585933231678007909383661141702054177373047313770301357236270416486224113967216981358328904468625144560929165754669578194114051830543238107631377631278290942942150558154206257255220302294387319184034285276905549062748632448108355104179757093214146331891876208478926199687520164940143213517878044521538854911522520407388654191893994050796795748060643737085723925046973612830772919320870181359006586742420027436550390999933073547396944320616629248220874184287954263118223335282519727495646659119288662240021718897186960984363272186206500747523133576260872482538326930939502996731575376108567661513071203718901109281002172143156440026627752906627053042444068523278596420428022983609677751192695779804974636005501322343239467857961949693134976909292972174641192461974135300940065951149751302057368600979284917419980201564071135289379589634348695554314061048174649852713409080305951178321863412063987213062710375775061353631834276059286088345284390862659054399091273706803072902313232550158672024111802340625862531881792296933988638167149787345442430640810568486580386355771098575822052678519826682754964170616578123682526891121009469123652343847000395238329167868312537582591041417005590228140332436200848173863550772270879277792846486912326752413832567474333632829234045276856028763505048967593045168377505426566915036150527095874979250759995481126710144158660784421427823361583401293512489892242143100681607816385701408454464324726374758488506438553680968948267257820827018915585808967581894067512703643420415412413954904763308788927031488242785136199478317859668859859063868232306364483723081488238451793573491599876413995774691370026259996778404296393604114528793893423199903849988880481677058991376404344948816265547098870795821812474476292907681231452873583983358409011966457157098265008626498685278836932991979628506165403177013959975765246842445554927631606368973085200123565731137730922239018332594855588365132537712879685831155138925970258035300796135686665891865358375099591304457601423707487165928385930430311291049736019722079576315588352147200357624931727418311959501335885841145436977757411423861708293366511147467163758638949261525266663337957088722299461917582499881257095183421136539647923646557335547831799590301474098149607994555558541644224555496881825507077428734928007057651786437272265166128572767750888388135511818396387995109539367721502390087407529744094088698850400804741785804391009101686597723279569322279895263153945055434607416236442754972615128913894998544723255559332575861493354193734790263349650151468022472515165957941482654018480319289895323977404230492850283559475657316760304994609942458386415694843264234738698498304314214207780234570057095695705051427345640668867337277568529729824068736380981552052969464912551374991450524067388308857987607840825525234947267231064884989151138308456138038393986957615628138354825030138998220657599943714382915580535422888128561447146691643308001771428683631780261423334439830207335646346193334967091126877328231442651518152644336766247194759090091822899327053452870870523187086360124115445952882433227984640455851385482822595046529775525980911580164375466888914191009598955889927378694246273379130516194093825274003178762747943443437590719831678219570123173295394920004456674382321889356372665747337178318693761099594588177502306010406303698777866566351516489340383074500303528005870400278288871266419783575331489597653070512222982212972064182753588812340161318034131775191904911741366521235670671644574587851513082223141568161068109310875010044239106835610126691362501592337803179628282167945884462382453576519613912129279289003615131908293869745080048239511037049792106012075663053266959019143725585873754400534404967839213352538840619459294423793884677039791612805927850476295967904667208921612658914479139947363112652740594666235310492511599565756338217610086871870039919343564212752652049238107021986053164966596740590040809822861935647494512587481343234693505081092011526525036957949848175721630950792348771891204231002863554560788263717140827463622739982917421944964785932022058697831699669124033283660205747105241079459091004748245366084558300383159319103994797941045135450937102237831289746897350592449933212431294399860612890990273516417715501884633093796106585475780207196824025690624583066577742983931122852477481962588009386085482239923908897555014775099075272364172663113937852419448322323865034722300904083475239048685265929608681961325714091387371505018056969021581357450523641662195950720354084916378983728481719689639097218514452606804685181723756534755424914315109928364997180245755278402528389748934672189476880366243283878579304742887071746222485600168294082012302741783622774347479349229223108976822111292284781236155748804314092221198111122945861406775806245926204015587475880849748266423615879053867845734560499119985418311866868777458448785278671765151407461577406513365461672745681282309973534129751644645604317425933824548590574244806576374133816122148438198446561109458375776325348608613370909382586894676981625819672912395557734985467443484142439833812684142154858579488821921452043454857909571919372793681251144656949056561890230193999997052118396201602000507076902091456899401067112619036192004505056965406834167337385129608181990218034410139346946330976587673083195631773266024543790978082305347345149740152159378095199723137670148425591615755218990624390610834994223255508842009502019055664373144837625230500045945726549379887822947625011412174309770507014972146634514096117174553746477361854379453849147686549638513188185660336138798134838373034997907754978817674894808895503713650552515615472151422448539388183729212924056888987092406626189425610249223384686273788478086719282035706150648808661914878513650508639484924874212906316283432637847371480789237642211559210336817475533223347603915150687200699279282362854288277873205198722287309650184212595475558370176430931648661989229518003898374044857440625992692149062349580793656746997256308043373140275631182682716754633656467454893164807693212094515980196128087420319070742947745616215891038082103597632987226471263622452607588752049148879031648355878642260122554818586221437389624257912257362401529203182414501935515169383884482307922273552710577390376103244862849147307844348816522233517511341014211709004238532921483401165634086273899063340871396053650880093417909707459392017053845770968916478341293254277924677479585723845874850374348799738165323104336302007532963197390776543537999477842881789368339960374443165666650484516566402500388641564143451040081750585753957020103017434664965455245731217436498292123825418720205129035772896143043332757397275146909835433912585722974129446988560112764905935615543197191851456047912355386290625674107052780913824507207338343321283950418414143719492767211838610959426579876888312705035787711426076909932083968669515127526822877801106837635800934113531727704373651956701410637802612900723634366482787370925889663091660668115270989394925601778042558066351142918848966720228907076610566210941987404473261220193055381329186670379313756530191487948598742673185130640516507714665109368545375056163005412035395904681676280094159818993847227152261903189182246734122765799993744333041727332651900955052178009651495567680920883664465845133877075658394522946974081824664801210200757240659768887187862862791050241480395385096524748852502117643556990893227373727845845250701669033402240284547637280387051243671687855894933291313864861912842837651613203270760384413917716588220916555914167113834898166256523366823892960328985033013906808082226152823442756008156929043921909053693963223668685789954331709626612711363747708434976510672726151284484080626948255072202593801377065577459361585390241192128805198076004786862290662357976250931698978858181476777064136273476366979688589681804194085126830535372643640627224475306824459965512542097981335192259364165827480643063269160799891903882564578202031644265146693148270046636626369553722790198277964233463446063653785359531842673860993460069651158252327478592186256963146168446997461716247295558945250717714123064834274282595956626074703824860533355720022675884944119375181749487489060658043663085367682058669867398837252804839884060166509022541297984799686310228202781444807623378702483853395287322297500949519980086055163599140420576245029561840870624582807306736712324469175008210934962771774988685273472356023355602612801511853578005748981340787106374707237711426973630039679815214731500015925381473306585418619294320141330688150324280453306095947473000429115615493248146471184954666309354154227564553335611288913188137221638152341731239055161586644861961073264732100694759216005413980995143682878097186998312987328411200265143372585873191196501016669688409288391642662039921769820028193166099373926964274593578929490481222566434582367364554828177838852912288292786282869829731957405914093212237009721827275287229447293748604530870582970877819231806761919041597809147562596252677490276695379008539936143277474541497419023766327110746582405720603299324263284462746459122773807056877110693429300647849396071030609299259532905045329640116140935516927151081273031267346899911658473304889647396976384317078361920512673299550949342151392997962826958205454508100597698204011000386678891884011915271359695286031703376691609032047758334467553499563897647367736045194599137580760564822791327590823882444608139836344061322815427247732698861087515158568468413453907319065774567610234400825627347488792259020573462262096111495127452419355539492557051149296705459743581022064347777689105252824606481042605730236446004660887634537278798452802937916306285282350428051926717558507505235570201638140908963096941700828158709083906459122451346353551992018037982670575321051060469630190654102690011025147329242397137460493471014349655803723597388339303387942621709869890972708106039330934636694146749386478438075929074013784726176655378915223493333166133636098954500741572684524968636493526729893578780526176266117695688975472822847056562394432484356649334973360462568587741053271763975759284743080210029920792236370176337748147446955642766462981987465336072586853979710940011833215013490597261724272166078289726029240719617590042375675610807195471603639146193692458591983921537829039547251227792037928644926379175163093992276086215081342787520802789691381166768940844361408943788786031434702313712759577548917085921761391524006626832478082501405025131391925571449558790934969503350536412932163238436022676067471761795414300753927838284475535737804454479609310136550768382188088523061418067591749828573407343190661157154446664643611010661486453439616782298242147976798667281540568234580328180323641577816725289428313567164906880371471303758440594627451277904536526614622458698311353529701855559580522566865021605557370284592501015049566326959754412244498281539905103042092599080306452788652249495182744777807686783828409403897474742205284803963766581949780993052648263214824330449192681879956675232214787318253889242396944031791017510872116003003563408428788806542862527684392809673785027688847183934363568000052896820804609379813504342418689011923314860351018085847960132966264220317722117085347923370220220294022224570676286933528842759944909149304565835176576127820694366749075368012394356895335577456777390773602347064428127318329367682554370997119514025982533581781011260573882256888847657585812096472057243723815461206126332667093872814667589699771122786571838788869957625279916827578827960040115498998354447857257909403884324214222312204474396425625067279625780745840057595471964970267718767245791877208110132716470863326691029049700690498903069147541156493547527562924147728250036018918804318931498461765543573815239300624929760353389621150164685510940575915308959902716388998786481192318025916500955995114670047812746216341403129156590067844165300772645572062597036657906692027861469057303025221285857486213878441307757214872933847757982077275040771321981175356493766026159000654453224286219252241213873740099602965333433372868107110860231798615247635804653439238653530161089702210277380618486999853810813701777281760297702657672075257020870905421087922346548592580085192478034639141292160304149561342188306196904533825338976271748860715141880358009815852457728558719514223688430525728019483033794166999338909986808535937372473475946593781216584903836900513377913475418121609091040505051964892026135586630459550287652543239754882860502039930412625936604965336668676893554345910786971392928311505501762585061435672585109307649449738808983845305898983225681501278771783228645052290178585224741101066271451179326874271643412513847517558661365571250427600777076865268703052536324853189649631925452114741992375178876846115118992959904070331247396664030220494506399939534089731827962377173619830603557303731612944353956293688569535280254989783694125344252360179433706901233561151993463087757335821435552076328537378329796487167203168797692703855396492517047729220865117075639202611002350294741297577082640716204589674639368423668750081505716854894541057737201006043023023921853103128512706699730053591530130103782735154355811705660069659171815108119878627921098804245266860834452155652925348941342008785936830094457131123928621468967629621804440089922161173226903497396908867584820374984888264910311971693520063490542380429585934408231942220936671975666939460190125334835420131035699969573460348022475306970898000431462874425368562555022583543418468245490782982432471954148466382387755219407822113132037994270290945159079284181562871058082207112395863911931897563159314110028308937785199365164601921760811229301622997456468282123210562744395872654463460256811770752717859740918936012192271116699263033577696289258507210130884262009295954564473607490576311792972956862731426391818262144775229571008568329634340078980686420507231021102496530002123553675696350360656194951555320630591027424544646916160171723283725507455318301737199733460071933767228068657797962585194222622848404791945331848674118161988323183799846113871784593110899469110457910667469005825686400861461455010927039203602881961222778442558317788411432938968253305081045632749769433549319864622137364914316565404474513229117303628279224138829909530073146462526200434849654940232739448491760659643409001016501176826673488723189347866681136453478166859224829077090974990031801709719974581505797780078333341186005395425754956106134029009840426309809093679235861618806889060455671867643235021781962333697903998596729662829293746917074221835542542741923205908545062527990079567324698588864018495004161127510800980774299064369538766693741230426886650435398935392047586889551915057135814569759754957472586382863891943705452864829063420240950460227802159503374924155137217613188413887716333062910842119126860644214990625462445410185037450764977673514405787273660115184552498696685156718362523485147781605208635920149814611534163797747000901748118792185899870613039900087705045835059657894032949251640780276025707252483832271268973130529541822618991739106551933540897459570772728437258542093887406765082661226723452746165158414335639756057689061892886184149572668560001394896676239787895146725764164457416168907790428391648349588412797416592461618083647842716014974512018156489114529986685809648329167028175094134472316385817328977090099880384586397438337238915550443320327767329697356123039520835522537518448192596840441655613117726149417868183107354154871467642973092228424778355532262095084595382806159581404574618657769688226319821331443693160948108851780081767327088688917406440068092185161720806936544548660992119277120751198086335417492840572552225787725071662307151523212624461049880764557153941424853646850704962049336830451061230192149083466491402748270724078791479377505642786256170181631815359161036715881527490561841314340980909558131997992210367561965912808385246319856547680665418088509653657729082818454898302288770869050311153989023811340036526338835237095280527516101743419143249808939084555068643049081684481280573422317337392163158341697331240986651770050892694396999048970129057460688297058592963980172712313659079574541105980431085426641908085773489765650149986528563799262735535891588816120555691954933454408895393026611327722466825507275810602621391511925621405019761389138346120751293463163531423234057619792350477506150704742483017584339959767114438799869274091555016421843529887050533911405092376101443876762089617097306671491065416903307170927974097432183756502349757777765656061189836988749523958371500405995267842253085428697818389113856071844552422377410097210670061166792982501467820183118200653496338254339488114623936187340479096761508088649326447969256652388756944088905334180194645162649822405555690010737283888081331093395305664322466227378819153270212214280787978673658850543740472324496020169944019397147783491101514889767453883517743951959424374941651766305979985069417250443945212387070552253763605465930644010244212110583884343564416055873709622957092804898385912652849213879288677957050485843646113491426753064467131705690518195411735961377463931650819880655454783474114383880215452656138104084982740044538979981848516384998459834105390058997621032711598257593487584045962557719162730599108599528234340699897707388866938981909873491008806217591015172277622622775293285252767715562455778166742728973266666226978535832309581470835302993052538985311756986168639461775879800341101769768290859729585539229588278564406605712737453290506273651469355067192048996389798018346530108809383009966893576935157626005429253728645346470140675661189228096104368559289136926494945709350590724210856117384852438396831693310175259856719544518864880140261061979414332276164768889268505504853807061592330807542055518468644332187397640328029014402409175817844608927429023394221954740078529213980916943663821328789770300563730206492960595863365652460303958167883778185979221142054890889973856033438878815898046570001523059603620169940379444740142570042720809302257514802813197714207774657824400984095976824952794274740613535774413352576527443912635549892162300638753301228146827643572325644081550711301930332532074686141239984187372050121044362312590887034483575551065097297398668794133747591359927548569830331301025802683390673279195440169773473552860710906959275650897117863235376239038927346903142342453713034563282837538005453541829714355718394089316324446065106664107434705364428202479825715536991299617192641315664703305951719869178084789885351246506552480652332065255669352871122306725312948304861839945712196516430958270434998165568861763038336362887588097093343605802522059490430814274942923270657540059446126364325194484644278711076621469847339937235340251808152616468630975181991060032529245414794599378690978031375247099151569574348827104223913986582024846874353780030424864032228272358396735134331431025160619824458483136909697416555488573945692936641182854620824112711181257001545937169121751423781104305955654902934614638798864752788590232326599098161165353054751760585235419270964315492294833486878553276856584704367891236006050415425389090876285019288343923748023178128407184025556279598109094721306846854514617475457292914145395885766506621022352211272837082251681932331501746700173958746646788928842184171172800398021584547542939967073376461859177552579749752589500781622114733342024282323993129969774836708823443353753240849138033121755273729740619136675269957801461895995886557471813549357352424100094680667994728510886091740823777119403116802664962040695143627779432751074265210470764501984522244137089840471633482112253464583488105562147546200676549184153459183247916113200488159059639703931538663198877364135207967106835658002755635798990151199194558598093526291995010292989491871456507179433189315848857472988212104514135187079301976826624274628646416770645191799013961485392609689754529079482345967240461974919932424386982563886450104047900130071472439338733691113010227727757986234502011807855305056698915299938432321749805685747950630938002518171895255129061564065307726493327672442471350994231393354004513674418267875288649281125659889582000993255921809918110251325042834277861292965265025867634439875111261930738358707182421691997282791088578191619738795335957410120398650828171613007410416302584242539348473611116902893757690360187210963182084604787909610464602091325915239830444291468055462824631876668286049083437769709252579698304416355923145692402827781327753399136546711464267202213451646929895152333533550232581672006299573144576935179255264643355718428226032830469767767559951424214674461080847168023944969604330614027180608840845275409792692537885041873240514805827790994857433564711701054570961862581307916199597773933287361578599190677988427827744876060471073166798185328124824972759005381520446673596014784075385754433868429913825153540600671234552358910509427352711012724951017850883470067932276076789069619238646328355913898648937667915832538843273737525633604929685298868367606480388256036778631056513963013950997396342812255702046922928303067808437160123080059968945663297398838310509659244714638245319891162633462378026612831038338748126569247562606394104766213945631952410078265480244319679825488470588257048658340348761874690951533401867497742362574282205401439761482619536836212215102212705049459059162720410167107367091496353751394704114282327795464222525739403468225374852979614517970222114943117133766489667188879432949494732099822747990224604983809622573592789869527714933570281662215002558162011691991798275181906574949259189052684598572027490608317261321816803378868585903386324146972155192392454538355696678113874455920094727642588399585239187992438094605642822718059540396322253443537193028711183629864543925768249813953922526077537524746242135522819202442505080724866342196826389273253680531988232592735778607222977588849603551976797788618066278257749447633765634898602025310867227559887312553111702673461928600214106092224650530974260622848469853507280067561212387641500166888636061565166953476867976807675866267890477787573786038646683486203809196424480326083678691364371149150614203636824707547799032936572302534294421792286572393255166263637516339050524506921480690606445988965069041358302971129645365250070476223227648999186651491234334636730159225705883862887246687887451567030712047670854348257339894956946003373847299962085536440108855941982942864000940970738281553672899951209758837487186576308372937816396377649131773587950416143144146486473714170448329196241845984451812224630823192542363912420988937176112291811444322481296679448439880448252667975823371312230151435108172958378944009440741949618658701197887541712403500991286459089372530861232886500618387663771533956478703494393985794310453375600534698198237395908385897309738474663299369074667848078326551808062035040177484963829198865477789840443346212282162407922158287251612122796373388322188193642649019351010008714618029961598133867894465685271906257671623565091518472153569750086398295327153947302069897693450721510949551470804203147181699015449429768301510897409454308852279059074787692539964994725750686447738469190537575375942818936730217813377692484852975122212878699483037961069718659965380172150477572989436760535354302397572391693987600388660768050027217292906826343216642604361433907295453201902380700060013530090955333776763504267020225617398422247911128896229123163363377073582108572190988053851562639686644382681577871555027697395043444529446043283624854306004041222363840692431477495379589876105769098531410468995133467635360988709730500302998843975454357931430682796354663742987156123928928429405063344248510591437784072757013815801578861427402751545189383671300647443447125271622704558136767845319998959148593386559254599998902513543462900529976060559647061476881897341906237193590043256919325206464269472398120877596138781703703808965666803789692178386182027557344869098774038674742842734276498150927879733784927466539224764794317262716361547570841139885704049724962925497491004660938657284312533554013054507009711712340664459474718537439334553607949006315331936975865640333556428614261546460394633624031439572421444578937621192804191846461480191834119042020272432502657699063424196450505873297749098012811515102801099695894022857229623310810681971521321217031098227632119814114638909831343790247228077366189514639848433174336931637505636410709620186578446303081614767314095071378517891008970554056806413880522188104563441439711806219603525098412179256257571004576728571117162604381418714516031162427625650276030244088343046904917381604795630302876336636491552851125952131897443248967301026298979044367978332060943220447287568123034350668110998287935834786416983472001288686556261745414525528132503122637662222305821637962489971216965571412317117338161789912389738272115375950200943990430156046315658607316713967456976003171578442341394789403801527529879782053164926746356525405305135103573574609635326229446576165749656571398197534621391088519981137037600625052771902866903913081188479980809211405625935817222887154548321127433040434834267026506240899973143450971228007180720970277067422531973115292770248199102628298195770407906942902772006415676383311572127745934329648465524067574959071076407175520964227208095954416626574179333837459714445864028524515688519842633994269868586907866342887123595699687877526576677554181524216799759047879265281185238622371411174164723962343612656789285953040194386201685173441301490644578075052492969397203733109049054726533321088020388144126874034419499666936895208137507791420496093662609842967039651794502626466195029745202668928327220095611164408657008091765566749079085757567013610046756869361685980287231890038620588588874501552117331268318996578089094464520535260353768118077181064718273053399571157133036456533775491617832139561550273695973672994637225001331262282789204802898659655316093171366099999141254028315925439297580851615492826755126446057749816916318318268907037587579636643201652574945090579903642515929079265355644055262279319786017772712225536117486638102570298611867746358800072000331122415527131833072829138498354468711480989353954182621156697066333395700494568540703901285443326438371835627650620211638922929052401615432423492865274891220890102593505770669667501298578985081367069022844391893851543881000311840760357328744065783636765308916543472606453144112534311115717806719079130776881639215623974430556958995944899550949583901217905194646901598043720949655822071034240626642514212096481306657379317315456740316718662722847659124998069151182799661486074333116548161630157224912753486610135466241864172475291795985676778501259185989365882988211342683229324118093323516793163904466199842622021074358495150903461274628711711197244983006609798970493139697492981095342305846473658556553650002813631683129766681082577649803496113078141691410437944388434870481410937449730886545828484775894130508069107806840354151983572896867949214736494182936235736337210661459574812399849272707741317468606760192490068680528077425255220150149886184839105078785808529839932723553968040605833185441739370171770150429733440946197429064399257554215591105476999084327890039766731178408992066753435370673398573192243999510267646982484978633640871579098729893806998424996161129402926553645812932723614873912955202353612436832276118000877457069792935159492779645570049159932487694244031898677342479954853105546734698934492617518535605543156929937769813912163735728259883014564573079912892871478839931253475597482616974453742633138685019959554512363517628934724335741374055355234783535608985317115929442981903028751006850614385166959789696263226550471998894490702035315881149380560129571508912687613435421537212286949926937342501357075416062502750760094193979938520379172496579895885713211498294492416404335210410222264068178974062727053857204311938308336597160181860017387473793430925917309047807806903499784790900876360978020838666326876177961234152518316021817748226527859521854505910334130838397694354862059714115079182032526029488976821995011371697486788994086067873067799617948134511209719563088567972213082145636110039779053109723478617989607822034271845472140992280104064189137504676785779212201587569602522271478471732407303309760360115082391958359838274161487020585838424605664900185307369604578426456861547698166761923660492594785525647072879514522330562132593343208569146812948132893878749409349725426611273306143283512258548684946704501982097416366974422971808157951708935560524652731795306110865705018257247678015903762918808274257699806899153597521614708761368189574289771080334859422373443837151124169575842716722373277081849910142388162493171285561262851411167247440542111449795873323940973112018585274131123693304309196933786681936963781755473112362162595565472199301155063311083214850788691952659154091577282354602122404770401682808374513088931040586016736299325328638877522910598706307430083417190913989869404166148195530409469817378399993515254095721888060328795835003982624055702747985118168977749227135953550271402148322782655597683677393162357623088959815481239516004627899265280197055556030102342405950952552487538771038212186945869746648180112712466653779634336162619903339830203094571439933517515066618465383556644822950332080457542746143882571636929294154617067731934504518038493565276440214397689468813210095665763423921765313664404217847840274377281577317684384187412539015818595038485037868668286767100311006709669764208961983508381601171174890220097456386521496121545797286557822137994462256632935590266999758634722657799704361686660508232807388559091205046949077786871831115492143014629753025380416329004939149345886215806744013329645076758280362051520072967853981916743450485835930370268663281853468721050359375232332704730542771171446599662295740903815757584502701951588444273346866851062916182195536327020512068551566216332384276378911531128014273413509641914545295303215608175817121225813175301058845129537011381919706813255672817146860849246053298917065982541521489336695805220632370003812860934484053501264667704340006893606848296395276281313680571360786330214758122444633964512746056620073183962048228415351529908927019638495939599776626482891327661829842669528845874381907288404534373344983276837838646348188846057064629313541748459776246398870526979912983342746825199154355379278990895929498308742311070725644960259741369089428347110370274865500709680913341114350347872585725185785963001627119738295444572996891404682295807253230897425548787052848918758128544390859559179947930620172120576902272300657666643561837151149333641677600080238962492449309529830420657617710416989881182408641919728472689714412182170724824202422391030867980884441933696373536737535373076999600233986964007745790107218126341051082397263121737035124931646321437233780650959690552083804372045834625463452264576887882166951163388010299920945937081819345590729884944664252385686105283719900964750572127848341340521739149987813872441627416100347068686170611782776122150540201542702948353472039725982978183787554318121410100518909487368462536053968378264189962700225585886873056909749386081667589654865701540984078816550004035322653829356168709372099718814493498956748392648355387160764540058843585798627347851412847230333520445682435355909190006258737646200484644554054104136561172616144558577413667197490055282136527837125856527028865652983572516522302244008176734498450332664330261497968970442280891790769405201771666136872521409828231056639835268334147754657843919822354678959755089317620642710833525858590596491157051825608891785268838776795726984940990839835225887980527334952563869200322252374106246775825692763570954481364755079212222311504225586091004284929313895068984865772272273397067009166466602409696177696848268930273339539189877574098198626163009114748937632702830005440037388039770585069151685693375913207505174096316569547720478697635107012688310600025823571760318724979518567347544760787069648972898046148149770100099835878236197693126328616191931972348938337052863374547300993867852203399424661372933580460670046164969077406383129783770621957717428951136398594320565352623700135203416473784316538206169788862288872352206970843439902772296819225658408897224885261522652048730583133643597144946423410783901154166991831778050671241225778945726781330664862821206503606194595874612742136919961675560809520987697218152048364876522658871067042342488394050333663855319786108432126023479813242646183529932873659174896214562414262661523522201022923299369080577392596066852093767805645481294548302046000999527774187868566861752931152067023223225386496504628814139643058192147815086160609751692664113121835443503648010822449331404876471529749658183061238528410351253580574647238254165749256984446895471687801509663152989658105870829041603167255832817114966273979670516782544365843455685330385540025782252510590118462509470828774034106897410351394497476148458542148031373990845393898607118282450834687178687296844957461643461442959683885053391120937440071655441217180528473031801354223458708899913063445883673102747635362112794996975540382329996116354920395583284203665257286195170410366018558226346310943716173312141408279443463631331403965206065164523485854955037268519158419114479403274470765544590621545172092126371963385822364751584000704540529316366476210148596701871166846705646192836946579271291811624183847661717114051313255736747040163355370905900541394219151083576700504393866570495354867705272451193357223665223083462339028791271672016080389856362830258947988034069099304238565176971369905267147908056818798958550594813893052066426746603549338491218320861127277068981617422845759542760222953928324341707866298969107391889570925486487311345229194162578185896149846858535585292438177610496033762865376644059639207593097848527495682914156534655641069567541192491110410094957359210891085033546284383954367119419838670828915500361990878571821480821542076931293333921200181373338900662114859353033399651270220351953820521133753854353051082570455487763728141849442883355239311554465533510564902131325346451246015842479892054901304787474900658432888945291289288748365876215087853050373342917800913341461778609384100993528265694138517850719894115585168362052422978826161502953857645847365411729838842172239458830547389550922188751523907979394956784640180303870165480597151397311420887256017688243453267868500560955578796218031305042827931698461428456659966416209705767590500485952464296852752515547023399651434531113943823260583865834784148818127666526156028201688104473747835058109785290164531857836640001475457653086198823527403796166330624847403125210025909652113081068773783283828744966234077122472408606069499337257260936173234926215339968439169542480063865369281040016360433723921448325613693730533096288595573522629996375840861413378167267346649521585973552525034755599511803952506019199765787263533750256168063168241514486431320808608884915084580288149873359686870375222587685850107352971730732172879328318304826641392262882643653297315045215417705063674274551412666375764671237805541536767839677550356183801420519832871786612893503266562774411807040010571327047591958909482700330005794278653251026793726302939668351059105730472794846783830891221071639658020794777427775332886540163347689201944565145909626340131149896322730804773427340049418885314107499063472518487520879496213285176635495232284067510185791539436967407888954693932921349236149068982218941240173640932212069393005401064453522741651473394934611071861990595478877655490884102501242392306397999576223950806156874608660564657182877752010318880670253368056614454401052664004949574887335989125243972788817924223882348067118574773620012868823941131339862391511911492771426150973412039641644881153239672500239818103412522694938475576199561038447513033472379066542660348918080486268169384794897670197608647092401298643146051915557231012572387434361580597965749092003464803738366125597672808639319095434079524724441883322447847619657886201127746903026107014182729885511395636258430350874552538407387689652235448128415076053017018624224561866339130196431281830218953351460068369262584614299573456676434922273909257916136296998707935726956075478783930442430564922971235027276435002068950702065501856730055388885057513018160333423145157581665339497676057973725633992092007448489441294450336006065408248912452646677432332491876913864118178079238333436496435178191646538070200724702025129672624496372184362618483791120086808212191346081000394603642425985985441475680526378221392941894816988207823846483744350072837684343528591380154307690181441338934791341465045534222846589286627510067978897880605678689511146885547839067844197270834927528541508634670244840556623600544314273597575446351469996135637787349792025678680881271349789964059856628131458361925834809983425314149586072425618738011577935996656276962817613789099141503664456814687849908962451486477133715584256501923837653264862841835163766986485831355350526451094165913401704880481479812811213041634307252244900590040119892705931962413467530346041646271542106816835084432432640414346913154780325583470458647329294935763229580133195739805075052940994648002245164568209957073376875205755861852382170531284833891779444088897504385658744470628212281640291959078110394344754728788972930029532294994315159896639993411212080176593276080552525364120197015635632839701656900402835669269000943260262462259113508552694874562625292985934271514872293929862913539417730977785257425406142884609363187310447125532259711694417142316193414475164716139333295402710143910601119950418102201025228127042283975526848893467133012347939747706701615550132833151517287685074908866288275502497078791112245607943169222445281899015363867930967449252355020050154509440545732548607923832182615107492772760373331569508051475193032937095061998311535388902050491975182953120883972257940198776759178245223454289653952226438600924235624545764446992623126529695502176629318546665286766272748934119084352387360918122075976948585967451456052584232151098491274110120360112358341588058620005610210922413089523354390235390061684392839546878252121885842214868230857214913565345680159801697282977212088158335926050225494827197671687019793662397050591810455277509298820833354247254908013132222132332204396539925185799725644934034909642312930120586877366066415906880764391401421745197949869834125051929844145608678537535193651757987296884261454957790595364326218923042201680726398204940597317663236014491098525211088567012571447102331446641950362292958420952348500431148838746850114770655544533509506885422082675179169615234140724079318666322504380063340008974941476551855387318809248953626797959023787958161380384133855772391980724990925915622965360449256031622431102057712143522068975652169199368111610054568613617545650219184272425126907006226736408644615690898360506473811788275292962417522181713784146294437860080886333439141301442231922190146918904218769985824204659276259026522982707295774077226589570513268875068226320893447340215946899922081115724642905951197394604135583717189947195204781205883672715473339565191529944197686993489809043183818175798889548972331564036000091497505126936745813979554794534561071620825324664881093746943845681560076373220708458234724069412294308993960895456229747880859296533956667232267708301916862542397947405437478308037000668823043822541821922536325143776859821277023811603069459680977160029463895365512180929693487301572976808335250155619153442726902469875248961402856198089979178362654587381484182041553585792174877357390493791114395032625358071229978921352605702407431193889363366940837168932174837053272296401879162154786135984832972005946542033992140957943286194810668214048901237874426495749762816447176915011656357582711199763123311279435766564527185306875904545681383422050636871809626295625176340282763773944272352205736982429564311678836767206612724372040354280764081998749368695492763333174526514342687347633398588175242158326819100502449212353057193130151214657842496024278300870475229009720576386798034103496992142479206467356709586048631337650195112252267034055710562389826986847985279736745765356742412624679705427119188789048531466317847395299962202363683347956541619059257128595076545378393672643061208846289283271347155405925791336211520287564796492900743482857290543534444108557207694043866146589960135058736265107404255994268922932833622921965877441402250984918612238360247861343539702709645896227985900680481335817943563346590427254600351982855430058134022585894886051176977370815158988995821679005500636520601162745019752832595598411422334492384279819384568006110740674071680522142070012328101868378467198194640059748313227490923881687908420819322552772395468013997283453790751141833422996279195850915322448971894195585646263721528630593451463239309351909447993622866747162584525173731211246748920121078223180011978935127528119057408298101669739865118063526371048739773581144597919428794767937745480254603110807251254644443245961894911818571843541555977720604096241302813995189994889645934146833582358146984631173327809748770569642318978513610176126385578803889406821964592792287626253962174546623556884055770611643907752504672461123371506935729047539556101416864402766046589248679265702669861822020423248192288993419821868996066558349202694731662016024991534569219445202671270252019865707359620321718693396080191810962417441418449288785005591115342346155867917342642611673959587743511303043816715292891661906851697196786503119752190099056653799515298967428142804020110555715508611911621702422803738703885198476107831610701172350333532954485155124316556758711220534926529595621088869547513681620136179444593795035697237829352131030458230351635955769293397245866118773917991076259493189290013200870708613960558510084108212543086600771708505210467048329938032946589195622904089419819158128611347462095905909277647761262655925224285037336226227721087162913635517406896533074655315585090447529583972959140461848960371070303968151790702968202903692118410593508860904596739180375626014105645894836885473989779071316958256095486322580249863767890676760291624233536328601202927354700512410572070135518991149363964341003827536862046587908349977788523006933579375469017803654274638752219145923917628900285548715487546898680710918084833117087102923793957309346612693167311020341969706318177770418038360177061820986798333472361835907137235935618626915590306940022041934845246948895670075620317353361374242528005843137335159651075435710911243917718478897291348606893931874170524800051626457746024886148554116567711278754032800247149595507494121061289724667253376178256129459621517673453903264119557223739048076973761360240493900097323733112268604853493341210661731144355335450007755718242425947847166246814877072921499915098946916266717618997559813897807188250199933083505106158147486924420895556882022127466334143302599575479061728237806354605976782515532207140606722821221557720455802305345988571512477261819897809992223850613938022131728245573903615306158201166654418220170212218802879239324860728733088811771564508682336545750505508335011190006328790166997604128569231450024132634749519518880013760841570695806167959661803931672048839143378904878087934728263970418786415449947401035794129479126893761243611698169475289620880405298201602353609973341458311952681561932983387050606204596185244752797597433788480557708326311196912968357034694707919794299596470445178741327929540216340243750916839455621925966872728519275632472183595181753551422109391708356618926078266237723248506768545050564639594040438231836259350503419354938103968889147947313077644361841084420857269764070561677870935023083742127582242536689754269116038019979914982188414780904726476381131596719420736417200157351115773064893606918821463306985162958935742914384453453525408146031382925738684369972959095800579483088353340146173890585788670202815812343104998296236805450026492108333757259043967148746677393945087876493659693410535646272824717584784203954205727004120808169554492695102247395424787740347341594724499398930510803661621752004068701695923010879963220322649068535729073000010811477023320404479887923846169403789701023365008790527474180161086702960355926226452057195772443276155867604875509949230365291045241358451408419144122076464317805632705445797503240925304134079293183746388884712894501118820259964276357260558074414708278046686014473063593215901724810202978973642990275852118024029112855097667969250663184659338012007002165938918971536690737297006901602949208816055955126176057716764641683035770020350962493619084235150556442186001147662324526075147972403004518613921621944753589052630796174972036201644191855645402006461882847288228970700620704252514660037778377534399643607270124306378258664756813397252305470707710002820899274665105401500728526202194603936587992735980404951411798295898899640668741544604066127550994785702938643816043577055948646503567383767388731004074858605825902043825771992131919248663298425973352994730723938420525200316926116873119259971384288742040275154944330412670051384495566464643572392777401908086802220151883863037041115884468253077563819296296660682773208080462559361941334958036166300154702973623949131631945482873938325131939339404502870301702123153344985632537193230429588038430785424795031346245325391159431953875350189755501004304534799921508224835009283651352670361640121606623754586826521046977595027691058109627698083283322883158691905251597111358380849705374597728109763914008712021617687707981875336352872533412088029392022825514974615320883639364397258403667840373135701398326249414037811933077957226083602937496580442198832497044579811256257938375832312350454176455759037722880131534860248880493401170834210998381502200271565894340876076273257646046649732948088003008245094396130818214020170985017797581995491941781192725358021067475472821884622137531579795899344958399756219778455979830188085413663970380797318981509128595691881936242319472512383771399918806723999190940497154026361512350113761511858928746871288756154159145038181174573546967047990965226369097871357397134406086865306526922482636796656074497204482047933769791416656077198611600401208539999454878645890536875628861789163146377161366491262384036422916950723685556580755230210535657005860444426506433910071743517884976432124132491177265363406595575604856443225530665378718725779380715521422170370928702056587942381574504200365974958679487320878080351727343956997518400876720676044157254112411999275820029169162666363228872276165155158512183628673893201306797692937980638426416482730296000642241048813103404291001987052491165548535253820717669501917683257066948526688570417847485566509220501799779053505637884041726530391119755556525127549313527989298250766949156246076198559362147094364376186210020193149277808951180355283175251577614095177394829003779020349398297766316102215002898373251788841560543670284071006461202733202783495627462644213604990144725333441764746345838918974507539729462387945910456878045067101959191019243755295504234124642537523043609611487359873858343027914934609759341390836748538291778613656756171636590583052597508452082574988105897296413559940056008070058986091212709278202586749402195935489142809700035606178711811419696041243941028936928250527570363465394485799096236931914949485753407663320893802650665481876464368153178455711388840925568388334321505130797202978070740809893998821024433070551354766905674922587477106275112838566456341592865820510363932723189911191159990075710628503600673107594786704020288197065946890945167485724616346429409912816583522179412692544297511889447962559018786919228379606072516216744239907101483754073470773445400452876394107539050546594319106881327474426898334442470896920037956810927319076547243747364379804713818173737654172533086209276925298518969043038676369609317731958329469518898268027655077468473028664368106557174479586140564270066382535920856904447843057316861284197959586631529280907524006975667203277574137061395611613465879529167351928989039372538891427342934371965195669860926857167621140546157476977779450710020174960625014191710325938306865161150914541196542713835958509852657969250324233942847462483058558929728106534611778512768725243349256084816789011558950777924607215706433757464678611168751480504778427563667154517838366575252685726097143752495349576277839441734650891500902890256007605780317830493256909727677030431742010002975434978021936441042376414476221607261881490926253844230395288735915838475943198098342324614395771046648552612959480998798282904046491789887869492034421648325037948053114560430162915595475590461640597912200285308355175117381944755766263907800888290968821738605670791365498722218300137157590392712952656002048949483519194431853836408818298728702331525509103160902412262026561928133187081878886718794606817404919171124489461246356082526858452333934360983784786789831073586351207636263314652914618684651574152498883010600700070316983781927203714035112751687348548599243192836006885785058357053724373595045981523624029133916232379310182139230368921829073757289674587386505059309978388571149832690508865542880152279544820516564879042253456454813775554127532848532814722822303089482410240301682555393436290760882081509002676164449603785414303188193238612089486491464950766554366972775038660597872292931047723990584380262787413837316679448356004044562577844114871655401595382779005505669052644951660520435197958301709870971879533399023008042667028659919916631536064378867208316911925672596614071317289163212481556849383484634061075018977531429141296468389803156300992596929540170116711983143539205586239523106767364253471372175129917457546954435819696999068723038650862169215702745495353561974529633616996053455211254601182851068991582122011131206924861611148726170318743437970440375921470470319020236495028512542479268185741450529376415443014318902124420437503582487927075085551361244648618256879079214357815821126540617761580263257351052305565370942783659936657792169465394529579602427617665541618280893489409748764840781256790658108630962051590765741510219578678486766631569267640765733058712964563851123555616512072973880500589505909322837642408739769157026636336096976749972626036551603558686346240860754487713572410841807932357658640624036562698646097903501394105166267710631373015430243031562465499611869973234367295365111181025710299185923478771810153168555423604666713572415161918694342776952298412653133563077207064926146446537698716205791336805759189942589487301058471112990072245266925795638038016431122518749421341523665377071942396165036701513803076536223419145659028155331682162847334039366958264941399891688793479424763494934782811120792276045038019090923943789145997697142390472978942617136257223105526888386708347832761119914046576763686369516246379755717817555170082427088743592065898554461637206970669580692695583560467084740475823925796640571203435973284794496781800865355119078603950957783603938428261717094609012666635506696705529351086916329968174828075029735398637373953393897048478967053650704762027282373237088063384340540625014978352533593513784176484051255951101476889868460280263370366894318252452338811761507642024317994274800307034444734108052262936142215280306041615573826331057029507548840513471240555466444610547368954875637749656369126178149928707021862309598052557505364414694845148912422924667288343514241736335420235309682312776573292093732043041732302966590247597003797861257591023995414517031400686915308112206919919304966705314538645544645518207621369030034584476679332115377916479929446002058657691292641841348505317639704162231225086293906240829548737607061937224403151808572655684687058242439160668917843276549794488684789067423432107248943429786814416913314499531982823891094422642161507382137781735261352814951305522751996764381458032223613925783188060924133608576914876286513461916913469486193233343495149594414676143565593738778069410173231322615989852964935313024127864665812410977827625898320455083419650175141339447390912530902804428663592978942032670993351862671439105737071968488477468347422473598309829528760148529504702338787354547528995755022700714736878901388502528840764044099599909317531631297000788823921107373927543481818618239057652349390587410083642195507209832846317011070858186457143971106245583455139032049000085357943931552176688777540668807246529692769667446897664614646531556345485100538887590551457999834780723527504543865999835920874026693512614102608988457421580318959271750097654499193770819116640255477028651406387111092014931904904144576669184469253564684057137943742592852919967953991313171599939061265892712131037539335281615435001596905026248604794921895244619217986901972524945515920334288181972381404433308491909419162482112994326916719613133366635910629250923350472198422181947954320878965008218546231420283172591955397769579728303764652698770745921933128306980825870270642481866914039224968194466183134815368894760719464038591272442215341034233159258558291658560775912546908063923228262920785561708197220358297811426454305007462874283592859075188962326837043341324343550188248132159977602085833760271331843814890134248113368302860634859275689039773776860115099649227606845600647714486271443531508541630871410821046729963498115647549941311226722708778000088517711488669260698157250304732700526838875502976550036002006977002416294323257311514948727024290053412848262910195232107724637394303179645383589047116112655134907500704728655393674354652537941792260543009765535337487725456852375509672803894805287865440802934094076507875691986296855542744277296303712911203820297493978559455248081318496389073973058696092797860009956948741917898102387171077385141296168379581795437752764935310139418355608067166949680220909342481297360921238764371261078278662530529238236819467136824882739094844286219870259514061898414993738992283798935615748588923544772943787164453740636917013241684162673896934382379871788664250031159332648004945663875442052775609097570917952232901993453763479188807643179582785507169021439094103101535087381287383150130369524501706458181286802806028272481872777722214058780063667579051979553604419091728913336045951959881303882218696746000580424184670677969226092707678374546569649835634146677837906855615052142537722542946700848812695652412861241814374510617893069924699082539029261308893127609338631090951600741065085553934645506747946562486701575579117849051821965027283706003395370981234462452081554243119937715698361323889872144003423010614238806914092303743072735393145521212258280272434351168841442565774968028890593197805919813509900497448502006895446722597728104076729073691251919983652772146909826665980094856070349383678378743169683786828931773199089480358277349983547419926322070815810382617016098379246326685894768525684584279538245362881446788133146946525690277443039683977291586144207736092106696071917187972785942258763806652520336953252103622766335707820669768232903146280407720653389103240797218239031049425031671827103256920270056741465501853083350894110659975491082419895411768972072195356053098660730183772516638938938456588368866565715049286792062264843644852485616814011036757761494767841675370575326611366524856383830794893868561725121773580735665432530495958173695903936455608180615363737388104727849927197315730300857610543956025059589089683199769561559559847743416949902643379761321510525715598183925320264203011388901717466093284277264872848123346716949258692551660251388806480475702251456150168390903942544380117796438951426104509228739668505121415629761216131668606548117829096180612740142671551730783747986773201372287188650639316044747551016329681406072663101248942149022048296452259578140605006360041353428334675677294163567421881800027981130817867180883299670904037462439545569824687824077443327004076076474990815757821854208821441727508935823058693840993670543381222300596033503494717934242062520449852955679688108581813965059270722039407819772425924092719980320084696584364335252994919932360421119878035847819138131368265875480229950516923054349744749799140616711963647145521219647254328276720284363171847394168260688950974235957607899503964892163284791273351009986176221495182349031188032487350690362761444267317745167559061888712358865423403835201203009688830707219303295883617621558958334643603453496081074493824243888841381423667162658585440537892129977670532154978988935257256569547850871681818294130343199979469344857089820971286101496519170821197461957488746404648267930921309114283660258995361292237731302182783326676203310327620020663828331323660614732142944886459854948041636048074961352400325323813561359505666720489257091293980183549477235476290557426342078504846893377346790809670038113166508617801779884672378952383147400629517105360083433934744960452871162915903173394384815133233962636886297254529915468601443210745443634389298450170551794122110104049498067635011664041007238656374440323737152342148160440399490083874419187031278918185085737661958886783075739301486510754805545947076965809329015664811023105242831895675703289188235599849319881223876182452589494651156896012629053449431428280895688449112528870171627349244278520351901701246701204782956397586831379782199726925011051190248836829644209127232445014016483894619308221248727279840094440604988467832438209561688475761482901519429938991998092169230623606686856087221280368993721030482076964805688337197802804390308114132139653107084758350846064227348548831345584649266398402817895631958223356548493044267746125934308681579982930493781394448265383695155189589671410112634814579747325664785982577553609113408839364988402144892359711638887573647595402507006540993567186197716389508300055315007956543055042828180376996208307295870382299943511982582868962739895198682265771249414658056049843153022763768715158085788638005905324246016941886201146458905209799240030980309440421616942670992440232988761281805243749681607285654848261024391417720905299382813361624108426260497645117005800251338414173484167987966518024765351821040567746237431547151727842534950706466343986033823543644136182946136132177896189940353805200774764237955080921488593676578607597202361523422801759398307604871032454175279224064296067546236246639790283034567250713752499818444447995282412837989086942157647428645848364940920548551696651085301547763332459412386044917862203449911087239093100243073766210604010305934901793800102968946755717942104633151763161641508715947597505118826681976273224743366587654082855637736259150511081878598003063956544442849240479141024405022874221412676543045797650391228469107668479225880994997139603546432333414028096207456742209617679070303179418833253701397980507006215902901659221270604781469775763700937544347808076215089713376057464262732583976029788942527862923775667004819856741319961094606229606520785051970318335816967360596631292048307581939592817055189961227100294002556908297289161481795526839053464693791132872538680654052697756024182725337164001986399978140383937390268484022209893402000293475843958752657216252546424038804206673317332313904212595496912311062153356605615632181582404252333050539158286295277225861575627306657941269283772120759747251070728139947467635907516629015351944940752894942099586655986016940519595760164173093686565223547063657295047824390415431077579507612275613353758604993714952073109081594197559854651217341932903828745980596104253701088785757621194288443625115495288957490858733888397217218384411778705811717450408226626940933721119132439132686626802077531653442597111752829824013257900586423926726963663670987174946841943894540329906702464225427651926182515080799236900251533940196563557320546808073710348017657398864936837301906709181828345181890010275182349624842088395463242071472815330243522085460123210288161420593359650365956437988456626334067830646723482403524571804508942783023783011818392823668906564789102567766271115044158958378466485791751711909553499001946457055196830664969490673728430879424196289901034767511425904184013083010813382322667502865001286809671033045598911080556338671383000073481868606155159079206486367148709801276184151999617673581472912505362757981681184928712179374315133761976233136472445927459947527901856776470965146363583938824925089753654906075475901721469962671195232238903518148715983640886931609305214219768241448511950971385716129592265285900342920095439076470368823670273059183137286361096178120589312745117463440711325235831487054218001680562234179222372911743665958189768416892127448379525795703344782236321231260679114306600681825120053955813498272892619720072982842939242583533581813796060625877263823222392978578342799622634526087411561594006302970817391889648477362915344287619565714541305858975548770436052795479164013826168785260590528483931437568686281466182323122475452553516818369986581462422372002951370751801129478334346763214363270839662036022858230439604613416620874342920338413580296967494571517973226006223140870544196881063607522493301353434357679723856640933663749127860181177125379798506310690129801794706924325123281915199535615394774045970031963368212374712844540720966783213787870696980071747331696081970442398491179841090709439347041906169265369748735713127557532441257375561000862463009357570775896415388646686880859939201925883737720253805078457766356643389809819342007399784205863554557253921015130669096659655286012320071941085588336029822697703080526313260852886928815685832765336406056379211855068908156278991860135574314986222763668203368485460232576151868559457573634020511715647229548391702344299856219476709029434768280845051321124907084620813693342927727686507031656093207230179916578954605642963098449346467846165583093229310600626923273390854773008591366625126003949807224804422847380897566384058009523473981967726909383668943164045483318376713434275312100208759515128062243101663778621822806466618299735105521994687395715957965606876773485056265586338247374412298691436976766104581705941842504296951202012812383910546083853993355130280287797760332801181414649258111940851818983516014033659814481764736336176186557590299791867499466071994660923808007584149016136457262686720103175855439826024488289095707197215772780840271573550274476287741674125331997314800797482475883481810697639324906613197346253908162294116081648601654543211995525951441414656487729334179425974676646126458659768841221303910100629287790865423320679374185432372794706823450329879942545709811179581113416665652503291555276312313144922617774474917676945144656317334003636833371112983163530064121587653194267157464952482753257160875199711917634433106614640892854206855143189307246739092983216521600041949438478782874251864012612804483323683483637226550662540123400756489063008493581835251867759726232164342277093371682332067034493531841311716054018495941795411840858671895753567920124387390894826794188272420083322622918259950521573673525593576589360961735064889528393185893787439668085402198143965441769125024502134320584188929441764321550007337096346764077341810748651004597850001258651091851952994066127696430126596127157579206016742632802848376751075240325807907892469592592524697206886788433071669182014914620348740112105498028338485608175146937414540824149833701863166918542024473078052482670829551001465639942243240268578200591929340738599401422388894659905032734926272225473792453588254385644123748054103168113869725782577584740151425691150052197314393136005505811858342243819990399882645344706375602020047249347846937489021393663410825849762523040848679583693652195458650810746439441201299901362877167461293846975336455284149296792512900281378254749743267755314142225023372699370921499204262052791104191782644853783674866970320458266262752580165734698693358481981189736163806143112984374432208054354719814083264849529043068405750375060901285417979607116427543974898059509014289941024880872791209394708290567082610838398442382520475373526539935082511753280024791185822466298134692321228810562732666265144439384120397682821179988336977283983315837866548797676663721415651507835345306113507540661796232740137185259140798500868369614331751262658643006322821364287889782464834203537613873469829814642931338134475954487821341358138334221466256591410680252585885928800900999613480590726555821812035411110069819612585035416283097747819400857472000011673823854252079162558221501123940162679919718443573457794029915600877380113026132397279436924830314376433504890303656104838354713184189804407945081235593219229056556382894022103452673307597800084884186079609086522986176053080362667934062223746863094664416109096540964476043421039519552378423156408161468776297101282863660888226697722689235002711701547030687268967048707389825322741646990866569489073216762872012963052390966268665092311302936845591301331603349816570224329759312811186152505153408486388355760410842586581685323866278843016240951513115376307637261127523196746070612849746353263649972787057125859547645637200126741153582607594733928429168806164139300437429031519929836769070103650556421956701888905804201409226300792020861155733124201465380402893129312748550689531157926064942676141970264112594498451763043279280032461511304835345481977666413144469344205469154296425515092446092043427684528418868354556381272980534108928604169224693938786353572331645796086904789321935661849509295221672745197404143366911803243930192091335840477047635336980289227939762133172228280003261928742435383761254970238497674843140784714146981421366195679266813713591052595094907412819951207413698824949726936858970275684338680029536783904281059935808034407056377488641867365171470312935902671552692384829329407929733360104958680362679831551693016641182141511364197317179750853847553061820907619670538231316271755496042861309339728619747377277218156753872996392903334115372012385199126178471688492684922175105083738461338161751877886797678939045529367894348192718253094451681614451559135890404630001825312014499686341951066506436013081039239412054499478392164382860818115234007633599369517342182699280127780902491590287440636552623234143129391477772113849085479606684244758267968146718778856674586870379360374798558023376215658079727539704393611783921927136217691461398590812534732969486750215769730256458252151120257990472458603146391556431258240762213248400020846767565568767706588266992407028943506077627013246923381993030897689096986172976380389662315732890980634315429475396775606320471138211320752122949538240339160196079824219546347582189026700652102391027914740589588592242125430975651687058854517008791703967700477226956651935457209761520363262086193859663257118710306884900045361907231599508407297343261749959375731065912379066987768436881135522062112452637472256287001519808317037716390891286406100623109611606313723638493617580635648391460507393885838412608228146665843096273256914138054438390653093744715050584714147156714872937404475946119650466127171573818582777984762784665695803816735059973882291794128740429778029896864621749714069526986404496200464351108103738994731811807164896221918210111114643602727466449107966461783299589042551544515377848976631687718665085022488359176199913295350585659979619379243210039782132162825084309557144914496226272084323583112527499255346547451840343666213238393840544665602681388187241039362180272152319738548766427709412792130544119926134050205658939279304264020008889079679068864635650540608272604956197874548028260236433385946245693903328690990741544604002878063634823936834859242588652803336591945279974791937172861769285048977279875832647168263537517280917167646508373410704576784512934544037984138702676793122385315943379057183028121610834644714840642922510838416729519701785177570065311601045104113952576809798622855336911128087042897694533998490403803416569090804717429728267392494733601362441857433185074662418385906579721153090285442365863624846105363621781345386590262662078751496359170163360641439551190091537264940581483038589058927819666123946478440350466312633504947522163955557385813212021609846883036570550944707778914767451321635102245387234404543496579902787892120559921714615214598170097381312439447536584881835385042398393092704299543693121894326048902229594318949131843771742673050968619286914335248603760258910355241817943508027642307445909167736538659216536205646920023099463723327270681313069043634724899113125986999826607453716082109020071512927933665326866241964343839713571575446005103613184274712965751126479297842568128903760655906008735596521447087810458761365029422332847070962820163822138567069474323338451704515380808703708543625195023795474127508930458559956500211422761654513441329465461192441822952173789341762111427889228648574975694347894865269550633967203074866048578140102083399274597630399710981714306537050531121381291470978576857712754950613330490819109527167067897902657978949526721469863423018299651496866485880476481723132104112456012051845808333941945172035605389570100163440426627404855813958025357580760718110274431752923052117559328400829569760389537926548690355415477184012776074552113080121890015089472721377078831445432993058241187461398629923837040164100303436925141224984076000591106190924727933291191554918311606107915390183726590579695946230713477620938665714878983193320626309547003680693170544058821578861279478510379947011618266219470498066056627880685495894931337487983032699497082365358526100729905356578900130990548153591965850861892982567878622390895921732415779859700704998103040387761551810670193760299961818314241027702127184507230752494783175240871922410629693584353761238518971274896643095246162632874861162632152724255813537864793995392335894948462090991481106689412764017269068209864163279869543974943535907519317463235247885129584796271253302583363576935468645650527082179659896221676846928255522437109348085051198038438385690031712051481944832134316691392590669387735542414263884333113326109121319215426308082597708808319636696600493406954990873175169329892719657496766029270972570101603427279577571310324643778875323376280170046054761793701614679620259444088384461368830568050859293608810758730883630807666908792776060305193103202838763123064128369177192709054877208208269006801788236952678224636855581557633489810206629480639723889213804625514785178303811628524447486129193406925511393523317648599066821711955535448829248635596182265689858652188728599562718885498395435479924515070012804912518446958132406403173608096321466241244418252765413352791777699879062225627454409836968819049875965652607700291553151946167162470531621442761808400923016323433955291858288573855782613420272707636733853920040425365050918244994842953522301781499804684384183888388466504324774701952424137835486010634714006392151886975517517687242688396805425890101281272406099401987674787207752549391568141239404238728053258049790500562315101305744338459048702104101557821963393642455897004623813888333961455014164098952447411740289202147004613854588172191849787804265812319045851023625557701224211175522658167544706266993166194018914739316542726167702312788770471192554953365264639352881343803289405361129451680688481824439490236133016592836965935866581473255635918461688533837120358304832316234154715909791847171716702618537585713567198990954325049957958616505420787288545341089000132508619836881881924128544462299458894329999670210478456838556045710091132431624252264129774334064008689237478340322749816850736273269205219584803336807159311587263571753556006421571807898605614939942501505327903822154207186119775617590380334213867669277322736764413889245796524309239878257217588093290395846743391770229537258089571391765698222257271038270904780308763538925497057766201458904374293599918215096360473776460494054551031922632261559336031821711374949879504909956712675984362094548699891769047310341855116037388873905496300145324362124190466348572543276835009764458557289258124682537230868208329303891258302412000027467929310540076671150611780508382330964985674507064510070512163198752120301548302909200218510850057731347474937298043283321043838427376435126469249537301786623069258017882794460362015729561680197184740971592010211443134496200310226505464813076419961537764467405385065896333237545183673654466481866684023755364686153680266098307045215279276062056507004448175080954714866717840453362497040671946555714053864181257347859082105772480229983813693350949662810377313674602960385470750735534613504026402526212180175144161630416818021006470505258829392332786178281001988104603692720036762093148453558956399876044568181678643724101124210982860273772043424268763687011277459877942131270468967007532680843647305037755597126379740443417976925673744098142338701057322805224843071173528929430201655912366057105512997985904374686417635346675890314124991904514946427445653514418971023002215200715237150902908697828452038660868634792593530724521159310396182519290788520111490845828958587376313035700419842945622759847736923907360728066377608679843847044185327902663286648664527268787003765176958722806893276265470426890920577281797405224937514999666436536611651024969319764882491317588985653083844272460701949885518244140220075235187486472784870519297530568739054178474586642319538120405158620755417443601536142102678764794401152459325372395711864868305992300819288344087588038391745629366533518039535274884054646285602954658612480957516758132802664856298704354680940758775437314751745752381553485366260719067830081664600633390047260285969711322354941997753674210857424916837053543622621415107113499439796826123966238523856226839954775734399357207373165970926899705843391493885342977429294328135924146716620493112977684360915751185344579896110906152322583276057047742429412231500533311688623556323301918423887287371335740840430946655469462679720428498310744868165869258672120253613002833889428953761772664635268506880689459420790996693326361976765096224620965282886236997644777185517366804319778264400341465221829125797192050077266822561355549655331517520188732841400083424960374606130663742926892646999546345845308901700422931283341048084491597283068628587925832945506513966421901521814764205331792860215833421635713521837073214111276999803858619481788351521869340862868467456857467537061374254287344483795471815141968263429170941605309657685186991923703046240172046495659769149783383217721788059217869741961110423267704943286082752761261903586544422356674610953751961130573924070617750349331936406633220214484765229209149183876585186048772323392754029919646254587384347828740405656299404528724375712005769622724271734792977077882844597465869305763152392042439550328784419251611124764295926245588607602316614064741424768643432957429646407181637099912109333997487632041832021897572764360215998792279314485345869378413731123198899289627392968947540373349650673293372010367492779371631282360453143131713011788283789913961432384365780983291012820514250712167805416594965959974176105224477459670983076721520874746196903058176526890925571438437933955480464376614619552644567359958608875860799865143298880091793135146918171708880619973598630473224620529872497002389703354980965133550610536579042167168023249698236260969455930926393143035467880691069796929967970583563003012681627187165074818547345458830339126933225893601332084895302585218655065940189596692000748508433440682963795686926400937424699545997349017973608962642384344893570218263769550817051161186820397949011850786600295359455912919917119910063605399007013837244701396162623533837537116919045658656163782351713279683945683604455770615759106243076827442975269777019073167065564353044939460383084121551425450607323773426689289969615061891015590273275974757652378481538050155331407441185809741694223598913847320235261707862010030189164125279907602513097969822251594563002320751178036495313134175782971232042038149482909273397281225260326395817020340299949972285418121950270323591290829030338794451981660919772906404053960775200453556783822950850646020305788068353429808326502671180031395162047394874327577883995837041328017912159317503625567572965112977535319684030952827890455547932379654131505983453267447652983837479462857538140773702446500346077159353115170215806577559087726556875495154741816348859010462256884264232287881208176559735381455727086352544874273474407865352612871995840965695124405076720216193459869649713584208135610198338309860000152780179893473670216348736063270483069175886436640948936205081099604854769224212750677989967739475060547286516849431237874913895647349784965857749680802607911042507913825016322555023948517805115470731849856925658618819768247628808125943224486151435823527983168748635099378701130082097808915543177227019262036651704403060029153961658358722319646829038804249809679888871514756835437717162123093371297391949369679912184103449068973932230121606158407897432534668276925154229041557291522854367171598465402792472357901037413538164803592875457357586492318352476472087653689221656230532310195845992638087823118567703590987239527455543221908974753178730214089375664061119869409830683038415086306410789227403473529283061963514240339443691241282837194821673082798084695459529347959630485632696432318339402346369155623961972669919289880202896351607113035571334574709961465443350884114067848445514151719776496367908713821466378587026276208920534404135923555571900814480146237204202255390371212540786559483590624614266531154291563892063550677930960070149814012862412563834285966084092744810391171947347985527219517872007654580480409083876385658189971584900590279349967396433147447914597591798291892577380548851020733096709689940945456706864388492251378742801057515431846545935470889392201870328290508452742647761077488799493858548887585297858517023805984592398190991700759877102426761068789707466915434577143551333050014853398213833574064139905141537378766495417804004327851897961107921042811384838049684671712090998562943802836262732775070707584764817804258857822122764299141457757192661730917089605118450883586546460902736837362522224328534801648037051492613486710876630099234149831174654046521703458794289745326671743867230766336751803392491700149697569771116541081939045096345189387710438385136644524539951453246683401068168900975465589123482823525121408619376006366176820785701573399375219635728235711294237961076867504014756263047831558715901868084831453960531466170106371969116027459528785329215504462039816875508023278100579626098460443281877726638820554924280606453890634438512436626243992608192618720835630113580440467055033166024248274875023256096580141216444190522952229113967472412387886412065988877868265677300044393963987656122959100455483547373803539114458556053932869212996765490334790798254813935513700129093224539895960810704751137830308949146116019399258148045139575465184403494431610677689255986220351673454888149088697519727533118951823194236428931949122422299660026499361587557411060045611462491308709454552796856078079327523511888708930001156462585502180467772649070914187520017201372095361097038006348702899392237058643908582529996833301508689851061722966741886719196228528597878916808803329213943547552786797436947035871594384841480569675024414484521550573713495162420544373637121877028690180860080899200116670371918290871376294249848761128656753878873290150981794780651324743791332414997572599805035281117659689415696829873914393512636173112901887807957057016088796753437580171077094473836502306659501589646408136177789661127107520384589428791087990191903594743141286399783441380353101978805109529868290022780995979787772180299280997434744627351100651704006229003776613681994312237890463290436125746967961245375082125247551123682390076653325976409810611223486047917027490919092390732223896397361838055677037912537774307523975420904062279359518772062851439721782483204435430113579936735481213940270190884422143173361347538746742773703416943693465014365137442122337531037766579022713937060835878259837825955480700934541687007506391507721854857121504752932129862565583949569000468777823971977828252971432088611831436036043091493505771591393520431927876888872715441889220049798946263772912614913158868883323047140218338073806399536414544426325782628513634133685195848712474890630820042448230985452957289654759254995973757422644754589400326225503398988066431114754640975148482884648168742173391415894912316478894882722512937326793564062974071861245354682080539925987362250955942524430731703888740120319176034481697143762338466552049324628459763612855396174428352837484957378196918892365033028392879115886321791827052560558164065700901817701915946129186470386044605779299110151058887817674351833789259458592940746322462842151751970726239681004743497284867027124695687677504949054326014029504486034716547846911014568685870514442215086899498473080475878176489578609300919064606770983110322315829369028644209293175180872549963365156976446278682585869687434564542448149371693643595985906947168974404577808112504197024342576874991368061852638873121028794242620659354375265218292360789685426783476731593158007447141697629312083918516928833574405767864331427102425005414083794518732854334025825434009707314335667325078782390038199688432455656578182228220340667590409956815653922956135587628936822105665420001404875502355926562404820895275402476266645288569992798901953899682462490712551790925303792255058748886801032332044840083419681334635336378185201168655586197022040027163340475900729627593295255347514234214833864381758648001488736289729010135060078592686485766233482029928509377178886103206720379444669060848952314931568664664873384698042203159675218393591081289546945260182344952233546057113157147751829533299351658713366326622655239764034968535422407570885597326426370373259784696725671161630291800842915568099881409045360100506700539346797748967969478041892725111251210798438974401206358839666447123740458778458238290121609246488009039894626382671581839866229125778447666908190947331746159897867148443803554356947577472173142194175165440589417208608642293779392314536122943962557146313148431068205909002660329301129418177741221199810608278941263037407193785545848504171133294828803029424157998787588917109021952830821449817062305783407494985555867034836715521584927211713993704363158981920246767777828026655126102342745960859406858535760937589293079294704050017752336036450964463903939551605220362128829758312586231993013387505658138476173863957873471995357080476494268962112123608349692087023315436837089402613625038211270112004257582566486636041281123948153716001795978825041655208529087338625073562146868646869976955256594773344296661138486806148982931613210581374764616386338649477964597894372320613729023789103930900047689315813688797035315400801596120536995873396760614734138898372538077338426746075868924390746131767019590725407950831441338751224840240631889465510819354094487675922424272071596011215905259848415930653584248107188860684228180927862013811968610438344728386595648875884768023717970055880121154713940239542624504611991002751826043033022311998719726186574661501541784813968603183939719645451248303631768206771770160113179479078241331553973975831573004500468820651150848386412662471288076900647669038208742802743170675952740858985739897695150283770980799742492407688524271744832754529901292146917301132159569557067840790211239692195391123665256014255777755948990504559330838983088354048176834051179628724179276728846207401749010020656418242291000779284477385145543322570924101537319020878615019654573834722640245130032596766224654019802924898750601522889647723182717874146334389587382761198780992821817948046764834789714987656736272034507920555087438477472996278345035736437448614554652286598964084684282926526746118410203162146716063418596671338546831808672020785475921156644675471937410986975322563111552599710728462048179861950679217659429432107860383889898370287105713699214256634961323923258555379376275259238329219683350683918076013103418697704075781817251169646708830558420157512237222312185741955992214611701280752199738885280695660784188902181520191819448122331734161809720635741150308744894764982995585084808183614877570152352574301611503231932429821377664130329769460159267211394015797372874251500084388744651488244682045013968360364309894842900336339659477535069492087398057793300623067922693976984682469945549966791357802265633809351293499449240180589866162466524135301119809144854747426962520170006569841369159621883985616469731274860032576896807263331636030463471620412797871457043888976607846887697215397958527846648737357339916208676190829884084580161496396033295293788554756749448741368674190052972511467655449042640504294541880517363400990702633739841343271668285848404872631774289463708842775529409140024819523383165905766283038196360080371695046351799327530186571070953072881192956209955076454719905641659265189597350166366233069229535919512209272532241378931452615602935004206384777257049914587122224038843489109545055563791153093931909448514851542722185987888609988679470045361708997214570902258585271139865301061360038935708515106808206422446680780371875709078280273185731820913087904771383390669969238218431959204800810226439546800627636789896074003747858826864127298758491177727523180063173809045765910794640014810174555403854209300474913710663600135453276571125491311437586657901942752007681764344437164628489251342889442058862304250079850833058588239544228715625734623380594952666002620396404200295388396949350929174111706396481148092136486500976754173044655389119475989092005215990887679997642444928050074206051068837551541930949515929341841599435841459933740268328709630524401449954818817858232255514331328507512453141613881941849532363122616834370523374046770402775255787135057562452726731316251809428076246923074695083718635778222899405227360831828054549443234780826086682025328372161963594992163955704064319485542920961905239218381766536549246026593830623422198159096528687316089669169870979034586569898383683434133603355341457459460550355471768234313594975422835176092399216595276739961700612024388488846023557305807985670158467973518049971451108287793242636316955153568156877097679523382714588640926882202562411915795251808194653352126514766913269952177566414620375401050867443187086368749181164781468965432656606451788625725376725453444851022243226617262341973549938492035828143303218516774426713417739934263534663837614462420136739264022205995911620233702032096753129891223483219854835797406582457803517029144116954302130298646940079846709374138686922762206504218781699557788888058422266277812970301954444858609670556324806141425348597566000118102264242057622000859126951852205382996471074655114499031596536477698855177750633533203946029056148034843788413393036564381117412582187819244351703703433529351492281362333822737302725562223895617654211789811813397193862810291464956746285009741376965567558143191967561422648406438381791690574844300071953816210823616070199344689174289987517576524791079457199479310251777565774037000415870293352559018983509573997502919843562950152956918550431764932265049957778003934580202512309377444723741085464001521622012786980481911170660304631928065396025705252508930401278918992290978488498863924611434210525843801330468606481191347425383118303135343017010939503231063788064086795571523467982611401103740892329989733792082987222628191972420331789491813220703702046566322499307353325012568413519247411423203161250571667387395241898286986076635313986157640141030927783741647024142629956867679918936837524255720879593202310600900657900880870529373988623069003024929568228996923872579341399284697101013114145330511781027981791140818895453449488097147174681003633584926041764668121595064698069929379026618558058996082334254228809079617773643248179606479440038052730732127488043124805544417685406697669137440184094230786194979535629482922833857437302117468961726488644075234590087739758015576303340779199053222500041795706129669963200122993106390142321784333125996216498895006114008616176444722054090258365377248482129999372836696520548343163808314726420802613333133691253874354717793923705412573056756976830344782216210449126570502905257819870690828624087036083671766479247353802632081744154091089542061371250782211389923903562131118402963060080800343210116926157985571485134129148161273166997470082423331952768474039848520745737333262817100760966158436139600859815729212967480440614579217078774361963468615994893328024780253873889929160942553056797971785371866053324457496857355998034941200001932070172451422642106166781071523136111146099623613598888943440719083120168880554863513589893967691381758095486825934667552110031902877833691006620137404438176635256603582227331369284306207768010967956507121150912998393851714606619511975586467025581759435812419820549914412283821726462505367182875453102187908409471206451244760121707115852816670776383308654257123052053630312738510234483391301274419671216782249545331503092227209705946482519267970575411544434664228742030427474806801919756837700898712290527361910754688902585062246223744255415730569871740720518209185637854135056884707111415815563684814996064384592091756462925554153893253061063840647828486612324471033158168417784386414389534604676846894608393407586426487455913087718213269022563875318883394616954534804312557512358831953808061655860035137745534345008084708158778707930991665467844798814489918703283823249047942581604704564709678116282259706940553663375325040472239424918903211023524338497899081389916927246339595486931092585267393520915931874259040972220504302778644809729822076160717955597186257628557777019937281112848590898236116021941405251616897331248019803403784322771708569273580643703788195572253903512094264870197313447247577030670342774617076451105629342617178311301692997509185708604958099001567617573450105490055207710557216992800201017860589487678668392656690970661547303629317608239275083152120834373560731963559378011946116157664321170186741568931211801095272931253928584052204203294218077895752241888856977244007669115146458538798669559512598197937500993934440757717490855557855963532692968562770288212396462488356858923766365953227085830289234681847598124573079643895551599967719336011313105947713222501635662389053881563124188124213062510031911710562212339033702751734087205435870073304485258714536227927105176905720022168689277930465503098722060484348090674757181095978312213490380460089259173157142125438308082018085544309931225592773333714355666832485370747781560756215826778382255387639998822607083547700459117152145438523324633077285945426400508079897691765587832291078857162222940345860008025551738063119316699621707157435357725279398581095989924064207294754195751314394986071936587718769888484501539693501546398883303518993268183374563085818188857276929730430520924881372580040440965287280901788869907524086064124174506040072785442054877453766840671422356805730855212966733552786692705474232136499027264680196058690440232701673004438858910791063827130081287166244169306233525882637129573377575204732839870475580988333554825529056563542369654444686906055074322142568487616971227447305560885904686053530597516363531778350082403072908021751211719549847653397401911560152874197048316150503161064954875921278538577261680236179880618084708537472166527942600890911958094359416459650232939719220932648355989324246761153670146656351735181868103480338829961183663548975733437761948317409658027555775294278285563065664575520240440363320837358731043599295184006227512437873722875001647350587954491535493203205823056127386749660552450828537804263259215906148344090540856461538030681932909394373919492190291189055816964950724844534771499631028503667844156544856349937406573773975778929155247106208677572553675910447457881340510449238481572779350977106203755069845852884632766281393408263736865523161314294459672777918690236798355170570945571101881577466471366483686645292280686234714764636143028308963118198640042910236984100792447292847411859306168854332622336375739507818868947509317385208311326480009395890320262083323350082934858714078982768655318611168991301175234756408080221626193834998132840543283852623282671454684071376720643360425816612551576165250392218769078609558860826428523717059370184437163433673768806697515010040811470613343256524540926905882459940642670912148018698980731496640587097402962609769756622913933012153608833373189031918886625548938789266055540017943467406737678363609684042593802844470871290483705071380675351467184534217451939464831938787821515895623784745951567863166392151106527915534555504576090663373001002631515101546054702424247309349699418792078451219808514039248317745280306791377060662195384955278884599537883636091557915827327458646007906326367798099485081405960502047260093496239437238051786346259028874581188799072946033863770176660970793164594455540876651883847893960169706596775531319586420107825653429571853103191747943724850199128362204292152168890885015039141340090189591460138066198029194385482196520846482243529828394485902205490802831566206096753650509542118193782235469266771556392709906693455014560659102987692091180769454417350095671145791239213264631109690364166062031522410210706400841455444635754145793809535913923959062017388383928436325563114222807352027449851911738115791554040580769258288985727262167940688040789156037105608955107492365216794713379642724218165810631945331324934253920272242185050871975346364935810629208391023719270644633318001561675805322002070217877859570386329880511659625030485836771195935457756070458288960484811639062466892387700721654086716797105469299886173142964737642589192997818774935964001790279397793674032365666028743055354128857065010596043515082632664957432319805602845866572553504565130322154736101141172610866141812558834612044956766895957689286610944723819432280662083220467203518170800227546106233252764819672348243549642503333809986138751891275841290813089526722894443858581067932034110919765599826025615953607517568375544833604048377785311985135561455969490442464004660277474247745604411878375338650373889454957947508993334145135700061947567787489786026382363489955182915817731023564481220367180497054451580927670647858187558202152423123121280255936174351698743064193037418849978957992184527522106664104410111026392475230027738539469462535965637429088356199710544737001222562891182438117017099494095438157568290024267102502822400700327560899951580952482994981140827522792885537672355682893104759592813670757645099118999865945576724922091975020400497381766777715208304248007634041892206127878973519346932002923843814475967998073058266429412787135273460617544052033317072669177691842620696537777808284173474972191152833856777193765615775939106105887067363881615080965692713633653223663651220231158184791860473017265042750196444742683575586013214744734615889211411470145519681666912310510963791379041282564047559676824611897761613701641992892544478870263017597397816948524177555436300071529910331506271620475178786116271688511560843836329851253761073108029588136031219458968390394409910249274356665890004200110808091410299931589463388488193505696523286452266153420622781688741759574646758626975144532038485858703273961150822283735318147414548029662764076338611766049945571598005929978929067467313049089787942806414618204868880469323442990093449965059214923183737350227898463402435850753563877900050580150857459536851936143538268901822601093903211084029041681113488526422357110814484029342295130871295467579498364676628099560784989648544715454333068630161119845154901717958850008434798834187386369995041266159696398380492708848187816782127006525726493080824371595466934870746635227515760519855697607450575926381155224997992676708704956821646482088387148102745039585194330586213865515159702841365562991067657351756342264746074749601125162156851322321219573428634562107199552507442016151222039866016670845212250244275213661166565201518827633347125469706535722969809187449421070237392673303505206659870181428293303226615173037892281259010158234264275841354577664796027044395847625455084900513412360714587480431680856938720685586706899046884240812337438173548101804633809909550997783549366010641806153166115659910663188669327757539960097105557439246789229345481094988534101590947318236553097861754851860776373271592583342780296360084727393618024356629882035661294401324340595507786090873195596145448394800630433616770411241122849726762999411899125996803320409512435529595500259357216819990231976938752781925650882842663498767497650746361818640687627359545315220739095166194519405878173277935189869228891980432962734271667796110061421996505092379807084265569619451090562597183607046808062950473805755006879641507341518908242098695955793287267768812004221196902834569915210765121706479899681624472248648695928114805771270768875942697819164543399694347918263269259730137781548957702802332348145284924518711523791751230850009633412944238343237059160758510627476518299411902504354511519294651410428377675974398114251888800794703152094036480504347727496196786443322439550547497723224835096294869246688026634470309601558384671905897218035985667884612202684146558325651088601966158864500547707289415177287601987807010260307836805646580835608529985705561936975073963417624434424110072356495968665667265919419708913449346576218566251426229729001443314472357627260938147505380280870941686495309926871509801120427756027333909337093184111561386633365570442411700451706220142734260602315701053678172240452269824220592081329692092899919779363069287736020552028187861444741651637202980702482807322038899188690066982607144529158699740312335696582538150197792795431942193327744551157335513501505747442013079319380959143594310794861751783871291024747813622559319622713314332598958677423273219545439928492972217041597692642708389568809886239481556777398013982215057670876580066540272640565085779770373845893826830869983150924202722237662474489206585972088460200662571017540158075018037016928653296385561786397871794312112711083987240572281042772483088097645091425930091097302843166928102747712365769712288760905769362471738163074224660740227688081270982363106160129165232928130469970892528270801994763868959856039048324039440513880591640271236751254984773119342717185879111990958640995414867370868235898030665291301516552382494813506344504851217463882992935814936453700926078841126363815627513133337527464628593451596524933478345355278771080385365252802393273287435093812251500983277324655829102420900350429259027099619326713935516297847685846978636897684906120255639704061486739013834542469376049036646341391174499241788670371975918319910906142815736720490071956488893544015493713966743761912509117559709492804829634406995159026400473891072210157028101531367224756191205569533752166173297371104131542800718111906815197849562210102644006511478047328273283918872417425042373083141949324584944259433461087627487509618764049386063617301915728264988146575166295489838087508205032506515617595085381412238909431018421208256707441951855627382711733899594104392565303160342148050080859696599906457617950359303943577515275276307327573958020476491628005047513861154140232355905260876468411807121556511267088698035030429810899831033304255247833972788017522597277753407811292466792395196779834624331897368075810825396285940455824710579105499724018243397101459426344660657808436298743605810209624870891363869457101948950242657399333216078037495164220230513101461600210068828986679024679015413158137953676352994262854539310378078936093976749545420834362960597716298031312067404289776847438689178160899668710502885663559583581767825151031502107063903782613701009995112325567913946604118670461510270867626364967324451231019709538541156475480433297807304097603896484213284834583632514887682956910507656951091939299884911516687544224373548173826373567902957255234452165022195456215811519302532355169895756308493789884704584404935222020530073448038833239318871110911150530390943925837018096467960197746590372422634023889332917390720777917314656625481476205557268485796176069016054720938550110241370506858237592216996329125161913004949901244794335137990146433480088091782968581077838004644721627897623147849098809582842884532555097494629841965580417273603140735545430266230015915622156202848300599529352470172817706320826931310981310457739328587746610177345486783762069511307174601489587193456169168576774391107229813054626849989225713144904088136664993652730200887847100736804987711484191392291246103124530439994368946128271298050244702013905441211158623689845158023860701783455300861520301193076100549403844982784209652727407705285840450126731823721344171489954857467381419391482624787291229776162498308402429673092668883799026032343719852074520702397668517350712486781623221893482434017887908299974953722741312824736826978200568385041808555518639224452068035452517967349822844810284025703404957559893308792168948967153349354120961977658824094873180859860057609164484557395645855402112264998600093064836437026749513578721805645845857920234698684212485408037370940067765428935709142835883751964168173722944605113558829075234576605908198883516238195960348714100565748061648491591597336711845298554835518744112832015642806022142575611314770451113135808999374749076597190520227724729197253203300365662542357522163671715336931775920944456878252023711578700551648072114462040391609382946624341182155220304022035742756745507641802470142291172393190787699369494684481648812092355747366894757100827685905995560699590847386217041399249161970427545600828502590230739058474071272743921740769889700410222284365224290176608188889740399599403185817791465491628264311434234741722748843638399997388756786323906195257450286022915360683488370771285114794025087614307630604286087357114074491461446674639762590855125901578347998359979889807152870715687688967620061399352219775536693752361670282248603708284602544808197794023738134873853729559580055733406013632412940648624022319184554446768982870038585121437981933574395971824718876054091160863454345910258298665804008412833078821332726812252335265810830618111526175446634778533490867823456950997044714725517282047964460841893692867795214421342646791529970170283421307986129047569937429088719221307593034518551291715865181529694019763439509563716403198224019831367419898448969202060341871791536410962782066780179044095336320747999395635611722709738981984352218563287836480452454811838645492053488464903264228906536456618205141602940548404266630434441981171025380002225567430819256014847429897914119824123277651963385633259821174911272280293532258154376904736613254574919651635462022287668643203790914797429162915331531941524790492422007241519556899584594240056376853080822487593378545991563574825348663990682960895959489576226076069815728081144295228835403366506328933159991680424800760964394170574004925046721087489870093913514201055012996856979690095153275417917982057940939639656222554527848670659870866881498139233331223903524982265236776224467016897785836673122921889125225433953781589835297944069869497001814919805705518257895248299053585682029563099508155488040240986392675963155955650755841697845073205625609731147310310708587207660872593648114190061508544164577028240761051618647948284481076461498738807922141742231483325837484947144873905404627924225743378568921697470754960543730525572813553428020137678620129020413650114518493761917926220526935453313439713846441334302181023571748107870703798232200097769201732076227780643652480641065891890068947547981100854603157732029420310451296755378568128622754312523820542998223907645785552745648686821990274174390851473400033793244538508744207163624054357409033431295362614489433241825174768451749352064408952637062306644398396881895199629500968567304649911761761214948288628066022423709227473355329064677049203580513167459776009546066309897937967145802555195127305779590422622911317486983399938806238299863511488408663120743337735531584939952125182988105444692085134870547084334044121088042388316032144848893850500542460966617598471640243189270386470574996794788998186005507026079021881467515875873319214245455922304169075867073088050332359082452171599297734417397277124906845428977554296771632624621852725748269872969169200004720644874301332027624414538864959529647801430030886240897801931752833900551100831224588466551582454739191655953297231025620992478855089186528878465839080420250769443923692349897553562926048803000533772837140282058321875795758375438723138140893782945480523093995770590781995772146838417604760788710945325696596955495421437202753497589816410973965408504393486668352717069656038665766388753713411867839101145271855529734725682230885808981065790127977789927289520379531756895526079105027253175841457775960817170871764645375970552725036643783801305193975210442281461383698144501691788766020534952768505957021196405634059534401545755602953743037833735109654399173389589409661933944923722133929616857136696996241741311426974558734585500579589366402867761531273666194689064556518371864743126399962741573392330522326655338837015188527056804779806116400606076344540167650965204912700332205429169263056161276374311254795366345383470960334884801361179574104160885687731888010150777005969031128101793061870562254142352791822083634738540041501697245453333375716252184057732412739707598017020149328168343216458308694254812638886303050252027552838635526035539550454589607429741453368909803999374381222566853182803738548337227465082290942764480933672416752235925601165371941111496548089173521859428704466302689798887817777800696921464573978937089956805200971872580188430597914307489034401388787731937606978546760553387716604779811313513072892110635558904610679117288093956473266367320334002926649448043638671907497934450359169544337908643541491782078466774679984619843717971205383331926536387804079755720790494337370563664026917384176523256146985282551268533223552028820304105772889797939922891054197485210661825289310738297899672849924150407141013997981060847142649930879156127860659722505951729045325300360903920024231913736792231923347821569084993824232883236551567308229982938567932971976910462626764630590250114035105106005005515427842690786677500091576923577098819579641032250197784882613445267227373897858270489155569739888896841794386981744643194097998162035047935268227369871685154389198893932999563533933872259196367982547069959147044762049156766264676455045106852829130467616367478282081441442021683084586562266279237152253387333901091432372687525536178286043671445523803781402801730290917353939773764316201578095374299429862217341888967962400693002500801789187896633489673346458155850121965946020429113746110537681249381154515017039821071528544932132133684551062069208664824645713096820300397972991779284488827220736632191632992569390957934523734490662761385721723988266175765604649074982254630207380443952318803271517793900726527042748079399758075904007635387123780910485449350812547053818449573292259109244912747792410475442731368437870917710708321809525849347075030925598119352993370354973238968061393234386139364732862713069675569667657818576467828625900544347887644698190165884759124082359838777933785136284665464688568797655872488983693141213023423142225862109664371121902054219950181578208903902847354586787903050333720489092649781744350375545049656328992479476376846006291392594880165684278710769832492678795726258763670557708984972349032715580180025680914294199680078054081432838772762933123662799488352425177984815410794815801727079692727515769778589908548152997185701396630908477966466074196871915185792818028676213165128018969086983651620265280012490223596962178345277877320689809736481263904725371381626418790697156787340704007306189861393996049700825337598744348794630573260356157496256350197625676050453988568836117753117444973708415809303778663052762584146144598613799398198708579213315685482418769669378354677549259509912919440892313311348073076196444821985434607989650374853591313153931658248702074252314999679963624419636279814836370429064570096628133606500729420767452936125129228547270578635932458170372629020277628087739961717983480179566167471282053574726139926147997849595880845479013815266997596909066854080054398783413689381968646416471831759347559281695235592449697171644860188957960856186505959698908397235045291839347497281553245153535746447904903622399571368188741901003636998125026513518490841614242407093088610130967539590479438513126740267944422856381207556059529925657607632684048543818705071543053248337953452648732241558512798060962778801444392941512999817608868861153100728343198091654954414025213631619883748402063875729557335449784641419705047673417531570003968182062808168054245732111717109977244292454094419968968503676192496350381282254431914303200482933371902106476555083838351754322366818133952543231859474953013573725673021750755928310083565656484014412072783005514596571265402587713190399418887302136265140100323267608858970545584728002701603042497114563590390844704214927428051026873319391753329349981926150190020262351324588323190153899509995733503157658221363516073564905593919871367542737392501907046212564557583106177643323093770559908488017833139146691168244852766869184449698418531027153722721955254718888425420978324350037048311512400222078576193818322573934249206204627322492762379497355663524980598631080404454849295364227839793579743401453109162161009767558206310365522375396820397101299721661593948196258180717809776065912367291355091397800013334525089761308362170171720202570322067958742428975503311791761523640095755808858960533031088032702755114772751111079977289155312782583539521688530218925171686912862165956157953703581124374198813860761028303674459390810650286682366920924007534414663310111864191162217612742814155627096863379598399660392012557520918133710784561991926477856666882014059591459481646992033853415851812377677378290442265280043654151575788098165136408343452137043193790234166930159939874523406914259085646245319484102781735763502665282217746790971744732184916671008885548224743249548379930375608071232984302426178439027279077673146906116021947843549326843014734062249055754938324020123159542838543893905979206748164932562806215971709288335172611600698290903822173027876453338302902078687383414142944703062539797417265724971682499316323781399993000503659276847288908090979354282873907296768458153797582356617588880593927585337767615668185688308971470998678540692303726838943197366964569998668988519696684457941492290944507509194749326005238351159129005906114033946225197794925487103480238109756565248988497059353512777211171067853903193925006785415945776548351837849385476761682136460244626831778229703953150109636545687408452589916941616295916040637887967340353165500939554099013359408701048683456950642337043861251412662401473603936701082591421634833995777712427032801737573323122771934303383326207412854127805705343887149291010110856886221127271198669969540183692812607001370328995675323472924000373265471179415789387323534401276335308038597139359959232490147765689151830796862659907669314966731703385314581906522600695938550052399072668774814796644674771284668405338365640373061467490785475466360797327686712135506078770240963150162018467048804993855752580446257178763355616845532821277156756143031561368309227770497680356854605742472717490653891114350957647391320741438329974265371606090918758916551014899202983952309347830199495639768894576812838418705550381768674838904220237730997916617867186642321793248061505045010495729167539271240434593361184278198832175568599280945851649587205989622024162082608538780325576051255033765816542634392690239846530512808219402241198882341565193239890977413432748838524282689584759162754355091591340469717536063304031287499762058776178806892473555209630596105051543027054132708515020988722762334793788161248734002785233927924992416254495179261167762838177785681787794439259609685064020053558807570679218555631094097854650934007473182942269902648187228366129960807435761038666650919893769721715249785948327706820295922023017869997242095488912042087281681444215268869512356129425534165027511337101551787112294340582277519460558886619589568124681467033263402007241003223490895799612042700616916885256909212795908529805380660921581418404327336965481679167901021411556877123479741077781965837884923983007822599651548511463249523156640637279952845063374007496072424138511714905735295877768970921694856703149600590272886583656581855667322443142281458596421649392671081256166773090327797291202308012775067671743245214947622072600092609362529693827882164104415830479940932061274062766425216073734765258654301043216649546368152625760150905310801930904368905823294622988149164969421899962368655911727819372932303187806156770003585851590309839701655663700065995163471036544684279358590903309720636149969055048526249810757830111806245317303070587966041687067163216565763967254957108271493708941845340568980881257801561402209948722790405366470723961152980759746055396726945287261668238188712479373594820463710887424957100644896877234057292600634304185114879777210568751573887726958312223784766654573467756340864760219791024995360975337399872332559825607917925462527264525649607458522193253145490832409107608352418413160334166632373951926076957675316284367458996523160420298285583544720877294404463169179752099946455245337225381650581146305191260526078084475401592570952653161697142051700731527293020364096380324655079592723058908284178385141660074994113539199001845285624842034937240576763115946485550863007735008580759742874051311707017523346076266613285498377543654012325197507822705290700313472565102456150751558022470625338743046436420317703896504455477955031579575250426904691040780569278545487954053138282255690910991101474298330998930292964521191927459489391945850472550903297577827960616178972867985113789668815515453283531964815411350128262398835785274992806725269014446007453054776868928425862908205530546779972443485757926139045574746609872876979018468875614371828898170776732182435911694234691151121642018115459986509491892605086803627517805187248310872839876157369330452828701323546293468734059736331827094515628676086786541619501233590298830309153873736816004049940125766502944613163591900529873299870409917305767047169231795371380885926562059714678815594262674418235328627995212068738777991356631821361886791890289258223958545496563734651110357814036767771092401018093424255424197047492211136065261585262435213353340576481135846500812239984093212208091696450003206222109029894395045536938858675511769162290074287161295456201453115217624396101900724765911027013530428032896103237300606195693070037814601033554704629366495029555171761224977338038907229649760087442156703980606692819622145493454381257208608215637914281408706261523756610859807228504860822475559408734001579831791414249345880278479480350916216920622967531467564800007784670161706720304105926129479677516464677405076062384503561489015631667798305254407670422609452552715065170030115872070643798417330329268581872928471994240285943971438454548622353838812029249808587967128636758634392477089497137170423905542338860886559408811107484612019522756113306931164969725739518005952403833523221706453654982763260259874206477036709386264849222039580082526657217400252288713859167690268635566595476189461206774216097884929168525454607969295628902504880747456356862197318066689218010311703623000066626347907635044928189201478001851956269879423437212098047375422074274457306571225704178399781062553238573212715373834385787148036937392303934257117737161220673095160425923615011651758070512505260760338623032347606689715237530692006866977520219571116614439887498124896810265544094805952734515867127736226156512509404708290850930460893343544458273768788603739485248481782333209317670248783333975746713555955573396980953946090136102284495563804041308684710267795530104978519920499701690433155943398877619140617483844436708702754715841294724779582407052849241046371485852527055693594780186745104618126275913203156339883242609126598182806860171095577403608342184693606435408252126373511861700533026041813910330128994076913973127288693085281749286869486027988698221000932249853259625013304169092845516810074448685401706887533972226832783581204684304174825995688900471299546964048604749421107874338907428939245854804766861497685807866015019894676453787023149465462243156619671116405752193823869716833877332949793266283154854232081741584488473430541093291320831999190323320796062009983855829552897754377609071420137644386036757015653518981402970390255479537907203945955355457682784661013076834757299136785532394764844801622500801128966802682976766838174772924246031695039557810339681628143568664656402573102921040200005393544994019223412444577458104667228707892569520571384406226613678989455776444417957927855288667711423063277178977678693349323779483001276833700104906795845719595019821802488598650366053015548675292586847724659429156644849228350360041323223741295888069019497900290687293619905832581938620908178132733329817714985178625390232040575524717205884287327891795390559183693820398936700514162821031574061631353421642868301449942663246704794609601662451454788632694111488197823704730920359326773675498187590019180485332780550834884609279441805409557203275575920619383725073443490198284588023748261188623277547559842114984352799952498708937959330747252648097554547399076259015235997400539376230810658281269882284541151486464441803399229201664769087375652394470124475675375483500295493851176215942901890407208392876438034753255127719762180264778799713609428391781516726692918518832346528257275290704961660175984869220410306863504479786614302401534123700210422818547511999096242072187858609552238495849829897490517169005047392228077857037828961454746253391386692530108903629124381587945365951133012169597166802529888501162715638763254675449398437448773019233732495561593910704108502166519056307277065464141146430082957046506364562553799588427650244812817340731333124002574588014445290167477657655748427005031544104358032334703289432658147478344994758499735487008105665881491490135989708191621037307195590399520454481755520773986972976739200343570499216272015463342175397158642748945762595353992052971169152004481373530228500708225685825752162365124895955992283866270582633231358979498072914777288601923643484228527112549761951885556663131168390737619118386215050161737494849190113308800218262589990965616510804144401897328351522961028160642620235439781882473580704185147970072989161184610834983702804919658501173797195305354969350815389296764289661621446841863442829772731618017657250046123031482343240194106496636723092754038211453943823488048451353997138679803562097074582546415597027348137778794798393875313323597656828246997404861046395336056758358547304196249908920238194761409686612173451062320627656547095220710334025904635381600082809192351125260867359885279756916834792356288441943751825604134004988698176084409271176952744436982528275218172221756141242268458855020410420688320551868461325513451503190621006359068390774521878615032771801527704140008443803697379045773525414173895938606923150665078229951335488669687965693740258682512341099144197585303465555306550453353975502158474479470108817902217336208068436358813885609080729019247752763888766293909481028858937476689433089570444958713147090383628080358192707449751673451519991655836746225190380525787540335092534364819505519555484922441994695980438629681862934924783903564951923269074752150725379989953196846352240436102531311978820491204239344594195556088206288151926328235437167672982687057130117572437813456263806873950737920253875205822087279598350833825864603162530918132837750882093973618850793653402258027511984092541055051264372721745921288020270815515467128325845470236327415223331879360456738918273327293738437889596488010523746945859026750820682442861670878739581830922065416268120597575599682693341340024063822601982316381636763061362283234217444681175729664941535029707166518179445852038516245367045264581098176891136805957612580054467436445874258501331006664768852922944329632099311492604229602396370740592811286540163579341331731676993551320628476036143712106207930526952993274319077658751580209670292174865963066844617706266040500392705288568687015762813073719764671510213266086575104872345442439893742257454791768303209163474176757404957146850983942297596442409045708809152626483075133752269264443898722206643033973791621177550652158644165082345197006204212792106604552210397091580426512100888327013444974714767938297674686788493112233472571722934669919357929087616806620238240743026230259936026431985080456559454037897747753154508190278189592405390927434265872112322558566935762892558055496273517966216619211106238944569805440864729179941047838119467723523531977600678619002929529797414031903753167340087492742313989266747393475941547873458627305645371107156809259626958320676574708179148148266994160122637235821492399762293304877441239228329067113917287759117162130593501704079957938283656289287057015668713054671199011463399262043035185647597016525054078063247346322952686528822493583382806890273985557591893055352316324798308223369969567548650119085075604163331558105869129702921874804187512319575763257326872892332259287213836263265290428196161272462585201857739423138879619379885890491538639416972006618196069150126562482874314256672728280649362827415599370111794611408932184582568475798643373176546738026717308443649393710973853023705912090724822677416491755478481146450465346980922351119554282204141204666087631213124775336597568234952355817591828866676709920475447399893380865299319897030181748068291179272170085518613402216546894819553152075615650051929398515001925929703055049525892404956782411457180620430518058016367938557104000572430192030293973131269140853521281894882816222713218850963660473289667151030164946808804611284228458726102613955440949972898478210437475509024715971673543664410223316867291764377663458004033815841098081551228969914479966767354575645380156002731097848125751846577802186573386269410342551206525230439612316754418933760809771910254555416018724738159235879053595773710645628477160830338371190665109505044466068164720802469817481523354517291291392910527212332936061158528397565603602040415015160178432296887807381695305071088833526434661830121079269515015074940274123888765579315741628298932297417716337505708823165541664974034424945043791744353637148523090167163037750066093141502750761450162487609635322579080754009748680606169529029725856647621660930811806232900049289175365877361279288656478977747796191625334714578324107386408462265781260271584420252758053505762981024409536090665437781630004928936601551463296971003994196945605367730168749887813290861128809528501771299059783935950739525125713125484196981814117324475762218875933688858963652058835414397102869798071768415892647449714684350507889362318301688006772220861062091433320823213424311363930735578455931738891441251750522299569090601083231237369428184388900102777403945158671545044179298292613968876523195417406803266373573893892147327084578030833665592105605139641676062113417358638009751359282248439396041275550399771391809579734437811284327975398396438498108656918580604214545064575409170566631499378347946681938003815533046205981920704940499882559176626566601691778399742889844787704010928215575152932305694835978963455122394328641751874660747629950551196368786945132152503123913844862542886008631215741621985782218394608168309580639344363906343404681522029453620608535958418492293970022751307897544953376797158710996502423141198189987465755200257326783444163795286628460164469354078911319593390396594442426262134388105967418380624240945008891066940476574530609433667924238782288581283316719346984678143616144194573798763118196765600073068420505206005827909592380187095836944272526715555837435417024738634220742595610233743882432794071793815966953693463757094439935633083638695877716086293035744485759538660171272671144084570153277535074657222373036154835038477486508117697965054594649407718693846874325019899586410443582884176128269726946689877464316615636111709541457792981561492820820200308277784261473076587984591026736181260300878549376103911632169784615230131729090658385923689989727192934978111442788291989549963775309564245226626513021776933616070929707629173251737427944181095151419976418782267276319860649458710938127190145536006029441352674059415210870269504878273969183099254744926101746108866167587783182914574441657631303891695055825780503618152305753693703902398281170089894498769726373689994871857132936387490399747705950436277096136466629460276071774373437757852012217984992239420694257254647177659225877058851552618175007714896939089453676742618640513209132444747026281019257014498810739409171803632156436329357296928314250045048239942495752870738589995047999088933709923422817121683938217948170266171853640489450001431647061897617043460669967235824037329142914202355145771597728607979972322831450001599718467607918017290568108679302295274016756792334904298043916174769009701818599046778460515748931843442725812965171639994816212627729254307466830864461816587063006979108156870895979982463964927254223031452094547138049068225455479908057141525988118570087111353909164297527000581714603743949403967389014134771153698770890269632957456551858428921665154057422397076037298776525589389794187094754814343294718390643776271072750586268542076898976617528341689333175933644770665678527770304313981317294738432827978613839128508879170410055044290989689603124414262398120155993683318239155006033930882864040966524691953688805782059274309162035933326824406040804972914511563243247058257766375330403235481553857039557179334624926027840855424281982737986809559983618203379346204414957678377157451196720345225723351363304414880608342217104684347606178891399853924441041857309632392121598571235709473052491955385789748097768415565069095079984493506018062513189572486473602222353712656511261208986837987341552716576290126293089627031610327427093306390811616082390995105201009300091774124117786985023141374911849879294723780603632688871139298131412188915099171103881958439834582164730489821031844597009731647123438717183384941078837634726719918023918482866261521931246506651606054202089794992165522932537352487318789650478836721299258334344795425560203192574611863922897864829467113022204814830562262811377439093563790704234615390416524680934503315415997223094110862869856891690804807686526439251551041440343856548906237828443581904566010961561273602221720598772347856464940529769963385985872306873193398269261204219678603064232764557447821201855893532662527128346928971438380859898926152225673561546596107408069760204622729061042951360648841306685821005842339582752413595487519832646955262465516370996533873545878117526602748316461999918626136736105726602789526161857874946635940790911913383983551500757666494430377779372967803551088354894181665504835240384865822747590998031823458876324549345686647186000291727659715271701281932837873797892684874570871389866021227985215634569316307713709283242032504053868301107168598961214947576717171251957941057256405081510951751668029529973447881716348207048729995743343108507613632706758749344621340313684782140854673521798766933041160384921070499114082586574797917134444131542727662847184334342303140958949759641573575544225275343473337576655839907152850710357812290269170358988734014413764124395249317862766919284133773365012011803021293394962606310940807478963170778422824034539558241425694347479419263787158808521206114163566840366893878331493412719707105137875304471101870403145415470558183938550561498072072231290650209663875417376357730110912120748332301652618849593984475193117676243882355956452146102862838595191567325835263294784097782870936048815015281304372091120251972525137646663534996653272406709255844994504532722636066342369469612045827016575381181623875383888490848178931946288875084255377194617203424061888554136237596123324089477265147883210281596427239625630846212388560648559352024655981735957624010485100423127054348544384633208374672212108244780306721832318410935505308369723972683742534690505295388652708614243625770310086006499054184696913247377188995118168382627177032964177993892046783188701930178781857203532544452959365565091078556704589493534535566063517497639921791070946761457795288764134087843562557903927579397448103410510409470043009019667567169196122644103693258141015240581110807343700674843007225044588782689832944250849264258213698743140722411150380060614794205945112816079326378007971359786188023459073491651663641065431874975251017329618722167232197424404338018697506765660331035643204370599312357129330404152549512733389509132428354816258766165133004360200558458477089652174296385998642813962422472410935487222453262378166690171591595312440860312846003097812851975527958887060209350773304970786040322132871511255732646440241540841518314226292716761582962269998954306064061823803268629918100793420332142415906614170975482033838438455223229187435972263472075028607576654239878119850469515928462657121472974563715885557277657449778643428145314067194268462318927336496626981248377466318000614888444666578996943492518611104157528005590918479072723317078106811545460495072734981106611279858253203991842113428507477556498757081727917774716495162007038550975761121147374681568416974359940769343873758776187661085939590178306979394708116890534717462669398245949523149725437325824399425814635774260740206630791835022507723256341645343587044287723816999256114544129498642539176738997778424902033243058148306785469851826287512641091987697236739208485549178491442948878565790591046990817784153059142314220374109086698258318873986635735317443262254333699745151767400593175005065946125116142466505995906065770362558109732199303748965277954306192829736100979539941137471023466763075218966523217960011931873479977899878020638627848158032642483828978641057765807177073600495765809730895556749180213421273023529621961885618517022904182882428030433035277657930844207318214399549383347929558096408873091154330469286539975986180928277761666496322006442678109209883321306920274971531570525902934149198520796190269755803724009050621155323844938560320944926020429066297733388933841482750267018074093316180978971046783804774018366088164394769003865014384779539580145437980264390529802905524745498603811999045185174273704887570909553678341476632040468836163330165743630244771725413348676922838864634741672478595876242608557270971667922626402456567555176468034870419444399196218837251895016578995312700537547942660271370522049525234393284454573257645707587538731625751242070134834286706608820451840943723009456665886011264667034952185582011350573326418430531725650639748907890689606137366110677114481839290442182879279970793711169320528561922980127446762130614299724334827092416986926513408673062730312008215635768739576642070737378737798726106866660493516687946267602460582820852878188086428827484831070788268914027681594072073962212283188236591178939419542412315612836196681377474139071311581686873105648062655474305800408060985103600466989357827575518133974738291173605002710370868378098007390268114080116392858374709407458735505846744755785065128884328244684561928042674422432305387849314259743564829036659054988890422187395382981460536607245262317578732501004629026599252365913144384532721652722370064150025455695930211058572269274411721927623176456125075511898389948174491969054645308890726386736004774506357806136493927612813027703600187400624027818390083180553774318435722599229786443607769718121749251577969298574592628498413290556767302153373221582205374029116690547904098501479906479527631274970894499893947620315140795732724846684184104696441958041835176847665910851440104482092857312703012231482639229741654471958480887362675566201881242481966847662000573868920828399695585898360003438961066067701834845618798773751338017535235384750696934455358885028320553130273034130390622792320708474306657046803987077363069493237623051377203414142013294631993895794897800627703262097750758659770753648288402340214277004977216224517648238897390377886658355693171978834558064268023112178950953505353462599890744305305943394395350994849893069716470141255789503064962201097138243250726725468964595588483511901621502732215196090456006270107584075133596654964528679093732892622830453534768720214685073837237261700108883777415177014635790312933940361380380252224924548809093174640600153201054064563059528481153799097180823915277322480711042056116629391702435796581248186357254563272311925292972302213209125650669049117669766257749814427880650055372999378583883371165600212085499086830779337387208279295458219728077610494625827583116478350088502015658061667280273292986436506724023760786670293650421938376171129134963569904620900370396233715933914674298942566598295782598910998753059166649728374520323612473524991464242231289859508768959744232882892079659069184507624989468024229916804962516871869757402047494569883355488523833448636141693661056337880895792223257002051726363710847756316474512703573786968150908555314909902312955840635758539789867811665267482172398384761120069776823101066876251714030495269811818833001907412437337260856776494894782661626438858929935177817908384039162124622772820701301363745448709539678554869663003380996153915814867735186197481689028215590101601676661926380061914357980338456705978091577965864791343209486539788567894640749497684381709740161126082306065703690021824825096284160984355410309389383999599293468018947406462337392665271563893170957215235108002024478107031861492776277062156340356877322047983281545029843171238244622529688268435435668403390143030820699397705406187968188142043881047967761736547966261984400076414990495827278864078095934302865032278107074704433931843314788559176799318528078270686741108328305730831016890287955046809899357179880558691804578597380197187595127967538258779376551645246099428700563342892550340985414755808552362003534693617908198383864177708667690460327856012220893004755110861588925234316821591119476054619473809792608095485753147883680471499021892851052228103762762174126375319374148587875393570535448777648376319082683088518787804479114799024271875919562837965347960147564998410504730869564526891632807365395925120264963426895727176976379422924579840459141781059506637556720182479259653346798767504652434152632756548042291855539306127501181745828573791258335825322357333280629970600292580728207216284071119742202129460665523091101062768145691167264527551968302259918313143717822405252471629331169485339231169815572599261111211017044135239722428773047865507010470493131646301465474596834607130194576944982748583480098135477045141601351345460470864609794752011268863505246630679724712873325193736669896688715784383231462309140333336313206495814836344118217137213128303158106527433105947540915915032398105441224747490829855515666769230246432201243116227624609229697059990503971228429266649556098647663661454811343921649399166893183680650103146577960697401889306365714052634291383368052907722939467435786360176563361439563595349012418016860113905881215084457433588957953828182348456965052407758366766434778962489543835112157348591262581762754961525045217551795808039970586092403915918966208754927703912451125719487340688058285955834772214702156873860218636850324666749962308722740625015818211269202707184621522408386365518448697271954876867346899945953539937290348098808008214396886934215938526170604150225733418250454150745093717815905006311734081023791755131027674658849159236599376261326328251665553860534075348123566612129339096575042875347724075014250497747688751528355659549585811718870888680279972973314689859971292076109217920113902977734095935367908731542950701808483776419021215752862341510925737482191631286667559740224065888819445386477592576199476423334258344790241780304915003504286121429462760143311919120973697913780954854111596995055176071933960530791211970111133880820686140845325994974346993612948511843482218358470313875968433891182851845882672081604261093343861245962894638774131972571922148850304174095282208015026848497201945298235220622448624012585477443666306254248502565328402921644178134334456828536689815537651237838918607415030834520337436452481170715762688838169299246160373709156431153847281861059524430646024575343586607021665468761069354553636290788037437082316822478404399439966396247197043081247479110929145215166077994128873985789525706165601294643592004451921896764049804745386543578060723379073524553698097256081080151589426805582950069507000310236384176369952483126325666342552976528723867332800533672025366219739613064927651593075461636417297336720428386294216111536743851160129623129498145913186896786814030354872454317154813843354233000940508061259689669097174776244962568983947103477632079452464875219216076550576305277727361548260641849788498352983891140903341773170165714371929122606993300803709101664261056115461431528006357278787347014851056400346630816385198096532532027689973171815123662081966480210766789447426467086107518536322468728388785086936525448974413293681367319240633876621297369331341276287445750126071863139755860504543564454670636191231012410046710101311357111397634812234516084104454526235530433624831496850835393719537650640295125458768285965408287680283423485914683013412947630635284517334042577732586381202552093663103589042278763146182875769479595067844221043875279323578540941734905078651043686555100086267468820701267970284149017892843983360454161117624608423361905460643784594462556744879912809612358588696779367672549701558441179625750167605764475276426605702781864093747176429430758244865516031406896070181827605470510692252137810219838408625785920842786976701826901757097476298462147685814710720136453471016467686687366775551278027848438973112587919857865479768800059016280864369706599246167879286698779402414630982149612536501533727431167123655403183960280415432124431613758312376349125568427271896178759679916024863840796704515863519228355120118799819602094699246605668190161442434613991707977958769777405289937925760310823320642851426699120097649985656284875926967687661154810471173147740714683217415179850123668195839922909280431141409949626528464265007519224856559374387530033005466271225512844619289532485723396670488117831268655605652025656398816924773769122688770169556077134957313545480733959920446477219495887129263880619138988602143810741818377460747106038811642344054993640437233499008126261524037357009240245567483182637365144615162560388521083467890811973744625225566924210150158397665715176273424047190945561383348243212103313060047978629730054815817167882370790342014294306030791593611404956459275270509093208953132460179471425484292602240825524949471691307907114580591859790220590356091385642838531470366296712399736314117590441191173453243740537441872251010255588339494210655265486595414260229842390138125539234125637168412729796574444504300972123650429439831412772732131676072491757235905386457823770029800218407753779045050798006922738833623345421888380497463896568040899619105690783702491141740907816815492209966576385707162756556039703183303860735766596911413217793555279014672984457061265142447727543727184861617905687189384981680865608786726643517827510365183092067050025800818840460828964717377432575900742841035294360717035041362360473856705373535295559123241271906370269070376220721631757156658243084611061457495744374599222901733966271408729189760470675429902597581307247255267976781093987830047419756592313230810084222124635063186338389262562690254685918488646857210296610015965834314372689084275082584620622470919937201427830438626344492223674775646457800227898780619104465605748302994826064120324980535596737475039049836320705479629669711560864498970847313370853470276545324588123832816387158391691951233434965725706894512869302879140177865560673049778110179692660970840961121009420159448785803499849193757136300495290060679573820906585478781679042833830947394334576551863819932958481474575657846989085104301793833817832701078202688415988620295717596736099861255108472987167887660722471788514496578502636351262013952083154233598797099466549061845958461208880234426365434769216079064449980021034426626249350506097201545204607246350060887418494468721389717925231620800256032735284487407037702263296475235051033778889077459470269868013867864463370766697526816349632252305524265229002952082400316042045048419314660685774843884179141795544324598012825589641259327777701836738794887201731502108411822433658747617946261530436394742450590771518727730531570880924204785100757114559818999724439164241143113882974085230384889886172886529176854592053456431598433214947541752066079956538572988050312732332680254988843021533904229339055504075956475469703177640099990949665289536369333523701410483520661887785347663545609230634395061850469778953079887021320613832501471137287877620835658670954657948450643049223085501097783148074639389783286979204601773163664773351104018815228213455502144900035301684655482427347661801514169574727038609435347472245742551006750263197049853560178510286635797172652763786678872498475805861356355934415409332049597345526132959309331870633956062075212979665422555881784127903835827849060682237982503292792562400965805729407927524903611983838482033288587991857547162351999581275123353999600604829931047367459806410759343756935076714565041699761317274993053693451145594685237619202956979175813746933919172053124590198676327173852697381683670723639851832695366872164147844644228795056429538662536007070986913792661550886370030643347494613575833331588698195038229745769883968543070184998054027800727756830524206275752784730633212889422467834222694217483659596872398704772852723757773723491411356109626171948479118387684871515814754788349964997529848059695129434092294787604941106834752029945262464074358162360057054554210234399657440436792864308293796123594666201387887563703298969709582128020813113649320252545750935479083468415598544856869233034341310856672250716460970862458594311377200694847286693634265371619961880738788166235141702235813655260029706798953992420914361112266388099741057770593893553923609566766984359115057730136921512951185622777576570397157226583232996418127906420819381021509668148523024693863322500690669499179561939885004156521831519317908903336488080852410348824766847712252306778890762667888881026932784911122163129488743518389312246361116091275499745524012738757725931737332941270380328953582494883017770507829267399745680674532012980774649301165061637145632630633531146359022174045604977852524248321629624710077556414879647283813530568283211811973172086020989987498087125929448788234962360085450273185536554320927486331690763509291043550625989382472312015753122374377289053477096489033247936042420755088308924354227251729292108187399440490218221157688541457741821138849513875635401271162809033710530513455107375282518632273210654385666798351807488348601683268406723580730822223597166102764101466975935264150574780640107740994428942406448080896176402175298208193896530731631164902510078465503135703711215311990555053129192026090235059315418627098787192986043267303816368395885652428289974889735671298367667372430965585376619120956309251344792373609714701804905158024763215779876929424002394481999604036636711454800828981310468690647505466150129852049063092726698574078109101232501040358376133572562629340631030916079225295207425262617486721122952293272491328804249961034652401652254057893080547825816019179442705040107921663787241705288032143781061175241785803277643455393783029127275280432482964412282749145638219064104806584248882904357210879784329253959797786331893963950389903292407018773505313789370392015555037149045027315399173291270797644524107692267498018318377435606001292234298883611803809288548286247401134401386974470179339401813126918469809471872232957240780573356055551123192356958098499498194771157426275136620304415696904143120363483614714690004545108703225549642552609827606430694762303863047183019931766441804188891498452742411846980591366169042194594486226290638504921430335639377615679921291296660268484142271444122251442793871889445418594189279723620149236342724480425320662534984345942300354299869315600601284237998561652338048448170185979013401522465440251531364562421008499709707400277118745175372045087697152979758762736287443437694090812352927691557157248993007995267857813994659584154892383255119174642822710710769536672331774475222592665423214281110679144310000429948806218046028176488830481847690603030921004393726311079482325285851176536142217238411932294694462281092597729302318983998928403214480410214790512006211638813365896715858589868857855973026806992163219345383189788467002159163726879611650162491404811325373018424599419892941666983983062194640120823606203726074477515501529842241352183218615024134724860639914471887391677501389247918821304155189330664766627706550518657354919654188541563430135661500233067338917221986082099457438442961767797852232477010090803808010876323072957392684509966427917113577980758735105412561020497571829375056924104713838342744284985119323351719664666775260276672476082219739302235307232434114439839780568798985814057831185608534152865434052528540450467500799853780062251329974525380952811393154746908292955312030550315638363019628402632250456909774034139846316792558126016104400236238886815269133781060829736935022791992557128364515603023879820136892517115739621551503183917776669248365030441670001807510108146736659065318036455410862100468090516718014815860341223254243831526085795699775675084049631942449704209121989247287380840502858516675834515965280153995744985950181572520357787409566942445499119216615638112676082580167446929309753463983058802774138866615637167907584716693616812071630606603177539425391210513069806690195900127109682151318016554581377054746809395588886343819926094407811216054608734249325737506984572542916320260342550864904562811128273479955277129699776738126469603738369221727994484951132002477500003930721350869199872398994104268612999358077244403378812861606765321655580106822618953410426912977141311561524453550919333019643961573203730201806238565230876980769308985382438760971501888412367844997184603308382556622890934498023840391224613207185459941028387691929744800584046181257565788188480658431847392295088274697041065131858505960635927246077674093099295947202398121408897228525738273958053741579352071490377381793664895576434669617266663701639988470368766299521163788845817599427347318111140290085772521020788584472633571954795413755891349474283847038269434583703467775311569105988839919330571344546980050028711427279788716606402850358066541475948105449141672843729381780599564588149049364768026930233745472317399504135180116085286351730279895587252418298197650614296972744528433329852900148948830234117967525433420990365202073373174043273752910283243795037235602417831228813188996441735633692003137039714074167238102163849606497339006892984187577080330249779872097036885869750393837756491757486965000937537109388890136862206222049479785497328372172961403912516208834006078767083328125507025812256897039080396819411676648430594744584197321474620703831169903007586720144774324750969632202944674840892002669872356209178526636663331112197058512976119585201179503828473904174594852169984822412286035738299572301194424874243466496128035513155421052148563236006111104511284348283440917978190524886515581097305127046146100200616007099116870276052854722646578097922857153157766138421334908001799276927100834025410030945912927566846926551720109909770449745819601332003842575013259998627203944791166201583252115668711887578818945349327053775387829370995987311439420230955400496221636982394596504537471238650491347821506890206611796350947866134288386324577106940474342630512348806804595684650988505819668881171565278821799458183977492665282496799642921581499459466507073897178142693222067925960091283230214426610350490552287254146778362423982967828313241134293540576528981939172784872086242434512328853624973606705498271622783366303781747632992728849362691767337568277234565706612704084538440170286719314929831446651150324490045939897536091734608162077035797781319859265382028726930227853596299817919626376699606651984050002673567952075777673573345944902359120295294208272279953244113477864463944186582646348223042814004302969422950426726792214641920088642830281508462930581099673838560488439758828045871173551491753270256703783471882158890533025101535434973227404337935065734039889985468571060408914259830652344159480791785304161956756002066960549290287431759125108013489784641719551132174947397655665761808541542612306531291816399856952751947692168341584094830253527109284221054050918161377495707096043465548895871616587328456266460745295835484319743170078716176198291128178630395110082627638121485359214499133074651960811522168249821145988181457078460288958371756251877562710047229689443252850374010002225965160436718030405865450526365973328373628010072866050230194554048871199037092638319576279237420671495277697255801554076397014178246407150678436153661607884801023535609338577969152921400843460152572925673765302090065637188523600226492717574075215474382992342776899179882812111846717914820894316109081290176630997517200387152131450588412526280021888501884618725071720659219154434825375666027715610693271047662758381951326869588969509863682131558872411469041502530013484727981053450834813493660545547061698759979932909543407021459954722410908110682952145156116556421554716177083398434580549521895409417650115567130102724731628855100882758346808666657854250645637971170182100156744283744760217967491269071351862826489209496000436692606258436032439986523865186569659929660449544577006506069104093880262528404059225020525465398384992690836315543409862307719033550229029562856437453729174228947982991457729607207721247128343619409263198958098719653035118356180160664248134244866558261170222925006097875208439867100379996761167266521372076031829482465575376389598361525952917710214847453612953373850312830550313400230599307658006006972553641400808146260464169764812366363681564656425847283778133786113045065371328398058575165254194158438786179662361619106416718399629772231652736938598630300372450045798845812141512917790768185638729838448950466995252862427262948130597991145401995478673112284823759217405221217473613733141404500769604886873924787091069953212426207903886975405749230719451032923990243066057336060424302598168762929947392107642132745933100935879876650731665683703060913854161606370082457645035341537822320505561776160122686618384896806483328233443334639581117008476957594400339991047499905188627532724870908132552053979704418471552537838311956874959841567843917341379894846678904168520909120604468538963671366150412630484665502923745218817841477245466640509851735753298023027661959350668235986107812869317824439469228649448283703035196668181826609853686883280521534614723284268011667918377904786279059822952202416254324101478978764120507349760879828941694702642675987204998317699087472289713978700613250784685851519126311093587935290613417812433141488786824242865673724896253763415929661030328209642097397892281516190000371273099891795440151085909675672367426893382708903105783145166466411662836176122088695822137822125898176304371890325754359340315117384661174747637613860981462701945900484211645566220346057902756877662611366384051986514149008065003168735097411250359640013078192249345553040912647535228923205029745967758282319138490009685246879668499348781987286034317756782573599095249369689154781377595770359869140269688697741547299847114809366220316699352722457505105386293394570506576046523756406347884963442081405832572038013358370651008477294038472655739905152408108489617816237057038813960923757727502265876690701550827858213412973685682645169191321397669846585055238145234376406859625564559011433340200194733485168190839724954777636508883257096681072071795675331101369817423952999983500331111943661697043423389357737583432019419095814187280337423324083404162655130527096473732996980517553270399789789813915631488682425029341407141035116546496168902040759196187272668706240421372286970935076231031047188824421775784172504257317824279966447435245536669749059314767911404890406689790980027747284351013843146060424376031223190538324494227035219971457375789029445732735147938967254061626867478068420305038762691397133362952669887517427271132656028222601774674726181748615765642629937409874146145437963868296355607982915384848022964478808089430621908488748556884889383427141121129385395771608030548207091924171371392320707401418982852006813250694611515185961119306511574819978382808529282213508146302683758316999562807623439556447157338972892048065664788892190925967681888746682555128130326196715871638157569423590778314625909755389595764251560803564845639573767199357071036841315622143943485688503689356900525522933098094058250278866330704101261835922856489881529518371582865936551200210519935910974098670224025077681150038559087055603689720554868632824333060253500086112520102109411362501528028389813344113546128269883009513334073300429668103856597065176510168252194583330092837876778029107932718747977346980019238536056299821619176000530781856257591046680377831010726047363345317753436034883220473537078433089224525364446057651808480673202006041764603271411091646248149912203129433491170972187741384693177404075791329913406063872840978981195525473790269606440287759464871967421973011886119339033245589006551963693954263037315640118223464643849672870818978503962241660569216300224865643895706995526283565724822793942125693427492703950953839764794975113544890732102345388708146738676699837086352446305279634959286060457525618975959446848608449265463542845376151352271232813926081299987331034245148304783901312519152417925285693231408032838289043531396123296269382859203723256145065950372652047597946492531488034941083565589025042669125546618599518327914477616703401396106346811894105443272769535390259858791237123863233195091139352189267695188115951294445742279842791861548852864100485257211889450630463981642023777480088874529674964188207162333641803744680751833739034346305453801206321358825508366029718647555310659754049681427916418139115279212365366091114997111008168599822042491470559403161347228134269761644982759478406431171495071651196317095313587256403032718033763056565276466380705932680348514237997497420026304958282154817483269797793458339133712804529988127409267929499974696152442744721978514473967561204827126727369168061817573009515452400688513451985832578091554192481817086381825465562526698761282355474539141770762973018817463332529704125636225482423092403184515353903399018196539284005033407562583844485178939262313368962309869640923979141182055414755883736329706388262961202101162727091917266819495156979512335743408347662670185066191721110511807078663204595957326310950978263399224446317096901231748575274059251710701155755823170791671052969621673146713904048305376106568978539167372589313066843911923767173499528603852155836414646477301739197312254901785404763517287633977900197340667512183496966500771631298774868338589665148118399733543425100492073798790424897633821594871056383760831201509879781212794065043181000214194576702968754886747773288669129039473870222904766979973824089585971825606594163855495004008015860983200335132268280884493747174135776237564976007016176936056994713173177126823155701239737242339966765996029405009413267030135209938063421121012944331582299787496263508425207322659483502286474799927274624042098118224795596299404139984285015623879025505509133935531738298123780587528256052915995651002587585309913342972825341224380760470062422785348692659558371854945754280594345063430672451848680779699948903422319217374298220707178689214450831980760180369764702947068118949106021100023871213171000698400170509753274772407533814930068350288289998752663088322171842778041731003299639677777193077038792413423010733272546493930118452523756225249588123605071636614252115391364362388911720772248070422710457411594202340323998903180331040314570045248435420298007873821248577348085314121490904758869407712619136242603986450233287705592422456012359123836384290700160412912415569371424684219585948483575992329242764866473398598963943047698363957988577480923554810432334945070714725150983242672921371579131575924487909528330716907629594164085723188978722075052361017395634088187453062814716335704782346596434127809130593971072762729219962581273708322976789054151753121978404825846063092947361189430367131750179544716075385293766567268562262733592095555046423445531219593579184203655473061083303999171690758053634470044413771402363742895287548844093360710389685021880985849236753458506715779567057466443611812980847380711432506845852981550991267979579940641059908250148549313779133329054238365025891849633139473148850982561693294221511108025478056046617196674321720511304220457750971767116996485043766101969425602208564328865671528929964998704313406225765314191478715484802016340863783308973835262204436293409433683239173312814621088746581218460491644813251042801719678054479552363724420657108018475282815031080009206284296317104300093617290853783555166365489569179967828178781062695923856009534983931973456392342757271220525746082559136581491555529651675859650373740818358540524253115449987408968021531032948254706868547701266127280607519861309540449931951607525030108477075152650478650924467982508421887617452228067200387503097784165032404562218363675816583363916806682870571839394304931350435126125288675324499469952606835331461798643428981765102989964145876918775264212997549667607728682903078244791400582268995736091026403739741992121859802962314433401274114566337581437150808625626908873147446473935413720702054453263042044827196149638203849930688895102961771477548866240770372127271606970458255326977705924608944266539798079838544570678644335001476761001041617419124447434126595320406082238265884291808221033124372612671511015091460450115564787655353842054822952951997051137337556925544367819511862657894566829047299257098929658279663659646199481491110541024438510595318017937823205128725741724492863536818550898661183680667587871534769743320910168077027586529751109952333827125014516914498692660152725425165381149088392440686780244707605376037906540834198491548954307642294338206529159792730509779144281298634066594241077377868522478826494150397735773634149224583241037889621120293390002442785530232635522758969727478224545105462052443114091749731749662761849969560080686057536719093628437055104700795793193028890235605762082230679288892950089857957114025037335940850928487322467359340063208960394498897147519787006517115658129671072073699778501406877100488250713883656088029353765504433708983279100245103377831426304255500063208587865880620764377886980008878428418528225519743626585335456205746701478687056803800999743180094524704720950711093286994870773094256100652495154241877295917211150766968421855327183272568370604193402462067379652163534650354628741754266051945581826590753304744228699852083722084065319736695176303676881600376465546787932526555191577915825492533052090634402766034487448649552598585999058177095489961980786020695278567146752579399395222131710692787295742904435424853495872707732490065931409491838867080302501564061180738170239458435020465960561562474013231069237690786471692670829863483891856954816589698706739111304259243577324682453164881452419287943631019624660327248294903696738900596961562740520645033927332079851385797308428802014839110884785356224926258437861104892048625305788015722521722487571088869670130937062162209376771140250343611015649617692380752249474957700120727769368968178005228645294136311344967024933905838349416315618440711311324650787491210091105773904040882547195393733790844534435130903231295949499665982556840681944705060999458165587578201147810718447338943838577518229769634891496639577523117561315018301571782247983761960890140182394109335464638186171947244017804766313087595153374312494751444524645821573573889995561693095581478772145448242355440182264012711293840103083836348948228493920841874704263578418606665678929810955891145733578775266577734778160396284269551184142329656852757564579929918779535261891795221266448351780086320586948690314599998380396094053951072570037733813997631008364845677413346423562824561258575694276605556606947047414168760978492482782383792186534360782056302027889641401650093050385735954711547652757050203164470206715051121401764869978764599380237272945832883328287153732912206274810315387430932556017538665329813725032041238079773679786812627025896341138926520086082266181498848671269456433400648816839575273832356037518435940536812649462234308036445935801615256786452799473903747879992363429716918004718156827418165170564131744266833893210944480551097145623257286573171046154125492436133744763779305945132153276052736813300944084658994776487997962076922053207824091604658830684150772027342982105160472636010668890787051591703231176740594288568497365809845270275498254443843818400423059596138827921108962121479542070965103737167235463848825503575671093196344233119920125636991132627236465903363952809214352544224663652917273235284852850566784049110823862761588614642853700842932412241545871607337110536940908794008179576080875555596422146086280709080501654618075977702915884716144254242103882119478856271286985530671727431044518867824570434368150118167455066579694161062537865777408114172947530311571111031843580752091482112973780764194948275125033269931277521900615695954523816370725428872728412311965545221224567215398172768136793251975827648319048614302003404201510939602877428358249628660314075757367596755161575836649396647843057947274435383464772058819825723191060030519770702821430954182548691371108344468908171705736504308161189610672447837609300305766927862652691732384316429464238884165655123168078097768015118074456441555663815726887796096458822244879604411814918923952625515530430163642766620519777689541777976592754357760639868790962894900157712819999783618777370149587092656780642705053507323375473610628083366144052424952537963922728611862591165025071864944311459101846832741311670412930107978441203978906398316914040757951352203361766669307596657064339755248183531297049320314057708753277660323265319247311741275116509650512403870234955034545540949303417422813362378524259987184945292358163575433080098602225119457824120884005373770506654476482193317123166518914562489067622398737052553894352475528096755127233721368902188749492174470861733336657128709681905323218566978058985042465619660132446486005486599004356587436379831823466197775522992138129458134032222016322087564174099764177756512760947946908515299986806530920277215099450487525114146927687242091736525486980551885225262279425091453826843896867139563778140826107572643395833166194031372066818930231243341508113886983878563037985087454023589008841146217838163060929877163857875166616472367836323918175600202580440085765108929050755321013209291068838641261040990750004490852222567979148848521005066641477125412109195797743156678349097885423108209834683745920309451359259328091246943551912796647777034669139186639451350606074673007840872607183147530477119375555002374309838303861321945474583647715518675437352856530600208830930774010968898414471747019250388465085159607565524991525407201686288352663087607820390659772739517251878489294804995129813357405957466220799899528880291433446209449570009446120293857424353580538674933296348464754414222233883576063486091659509013668467745820142258607050775015367436440875570631773316723754945164704608764920971527583086113136858090908070914593504687311000316502043857660515872282170064277765603455008608311960226244813543253132701397441523382789934796418967462952406891675449785191877736455343022863362436500593043921118839159125418708522347179693221913274728878288856620561791859434205572125488601352344101775262017967376442111620858447594611441836039404775207730073219180155191195573693569492554081614840287649676660041672368551820550084640340398743398200242526615276786670160673768624838589511014087339913326082828038178102793904075257687906110205316832661557180577501791858236806844374118238131793042876199066073628128538563725650535373096705374082392811253959611077211144370426583531661367697509631278903972221032089702061600997935339495440205124505867312533218427366304985505525389040538450304235048492616128345852322721840905841628225408006824988547321380098048619557739532721784684560010436177269299347576225455088937028085882399532050020310221406355206607475431704835006353084933757515512646882912083503592979323238801452668998889353573569307638819758965409440274058843131272664450155405845413233681318213285755396306985699799329575415497733986009512763346422550150798135447214435206577689865003976881029826509181039061629692365726376525966199583662024489184726533627308908885428647945862044168060642168305872100729870633789524799801552623019118183084025269107645819280022246804810207103394445096553051699750569659028215725200576492429342522275522745644606902862029364499164363673424866968228934430931558508585447334364887639631672009557332713432482965287932737695871843540115514947643065723283637050250886952916279441958777184686519000713646032058958298776360067975495856032636538235209344761490105181735899750139939253693504969969964980130881903168295476997754411602346066652345074851546475711828804119825635965527499565788288869676523161794669294084089867101378034759537706165568056327602325053453195559233903977673206339749016460354157186874734078002755485127103379020434722665515171236631298245424411737782688722988241301249159209144438700950926836388025287634906358938701007703557869349645272129375380466448754618285824895109338354875015449264000555757471838715039775562466301966756917503061716873500965907963368318347782971311991228633857929037971891942894701235516470345967285055901178066791757881371103729527009493743908441728395561129986007149138721622256704182032987530089041726690447033034179598363276382407356529170507864733293455838649184327790566716203066015062174833132217725635230822839380897284546279393186283305065832887902991260523578232071693473780524915504151722312289581551652254016066436899541008947973214102648879892483676902271044727711344303131964728330536492821598237036928483419740514366774897368292536032416890767818935863604182699533369323050902492381393374151577683325474917294685723110942629018654941067868308848241858885994997206995562890272558712308041603748997832712815412960243954499759385848310267836933053623373782035706329759364080314965779987910147868628133226174388802176872970531335928103363819643985252789924860077350715092240199422089187302307938988977178995193887396008839749225311536599963422979748684212857642567359247748603660735406892652701543973086899585714105080742081807885119568187404773784621626535169033500456175763945859216047016325074282307107959870994813620158935794345435290038604799759890674685012373340048924709016525138918275702759579304389288764295400790699162966511079678242102809046298622259348072930027902228075282568617868481685890412797362248129667357051821876106167804004052911711136759521869530290775955805067008326479356654052613924413385587983751999986796380807024022467096254326465995716039339445751912197214034530445173146719338496909984891975464011797936310405775113929968102295523904775515692889816192991741811523530204515998116150043800086020308298605754648600852736722237277326351972734986164861739717652289042643565031899976172654183712123962925616004963461554024978869791566260691069015513372940247890039250717510675513371096059514592822527807704451023368070970011637126531615622907413233047510082516692189702269776703686628280527310972565325317661625508318515985300461826795215634251426013059940485325964499136363370287060889427903020850257210126445743439476635368888340393792027281549605723284415127967183098045991889041858561202030113767318344544993870879799312331217497349807497078679140369101555730938503202028910510374493729256769892602290294482854387753643591153210664406316611985547806697054043361410493240399110505271256886124751959490433085592247905492707822340773770103562770988816049404885674339865889379319259150530641862348811835465154766441143314040963651289483193882028770209798576292134776575581769794916553222510419021693757470799578895757750246914976282496739587821214642816412986391434962371629618388254726949562177697054284457389688065660302524344595518487270293881227054201233273792013634349113213184789588272761850588024270209260451067738049708566726955470549776626070265775432937322380176918788267153213054399228067040299049435061513244713788986596299747303653348581156651542923065223902835708919547036030971634866040149533368817124556929230684424257294808383556536396433265385791355464469325987487964597559748596053119732467635026746346803657749512723157522757207178375704190256815219151861673266816105064261850103636328256003717762009263296705326311537111264803084591913255705473806433933782225900499222380403392181608722989688791979479133132179558690184429300734192722843895238173741467827250393811441502538796887297713445721790331519184618927015483837064027107863608546516334172310225534036388798418844516450302467110429236659409203554865841756863052968296979261953773381526660784662542887921088119801991142907384979113936818170356685460586394802184274930387667092950052884494584035922849219137006967147074242499059164693683145136602172696706184293431939110515121244953286322925473577414634431149456762343167201181108189157022188578136355861066330675676725188037177279830156243734206760567412805503273580247540102117887073124617693467923637900769104173802152909794132188696944823033690867668444373597847804714090224349108685389550994211263978215969489980447761186087749695301175997313467461918470739922761245241732695473833677973070785924760320551128883880571789005249873499354474539672555458310828632023118752944824848290737059502652512716136554333480408964342693631762717065262266169401717493524375399006838082654190152524370603999172533007812479334035967335530522398789586314063128560172041571272724797844951620365277333072377045078423405284731464170427278727483181529864575133879582174881375706467330873027930318615954894553984401260893135541227402227017894700570011214578196478742612685005608106588277567301993248434745448413748750920150785253253504538755792865050904999575501731376289089756456984178579915605359208519512535240638221843306525912912503145599991768335547969388398786180204688339382654783573392493513233465453789349863034187339176023445607410856648321998435716758578736773758371857832520302364082990678474260831738899823559089326473899163485938530453768074599750361155197190827059887261679925045575689175397448949711653137637322027307921978199539610138927680278497222234706354492561481805828360692284753122538649386809983453773514386548241323973917224536502763059003681486292439437164784746087317988132096652775631641128352323778583765452922364404840637106989621515463815283694829781090046298020327486023934388405409714467082301711198495772591717187144571853820890014838121025534791603914671406196868989211788595026317380934270149233855265916481175212251500891174221904465495930461178790872858330494841611032992472827712241359159966719994322815611249632374666992386139872475685122899864630915786189437628763724185269392831248166583034886275033184265072177968914049039461527406516097610811535157642847823035983009063306222366408720803056735748433035456677704015078774882116288697131450566815147493936105200721266792859483240961031540258625475975741941104480407778534856218245528104545955798064510189341494785797505201638399126344044143611980774352007933072125745589689341685656444376393133611026343791948856669866093312827653717673745095374964065287002917900674368034435281205927134396027696684484218754412738811222836865094402515426450328109039165503036939160131177305125038023623511856795655847735386904582316108751602380994356943857021889453148784560024281043724389982246303294599112734577534820784507202622864431369523177310755465230772284873326739358441619144788901151219625468082002119364807762762570777225733545824881231119448576320566125390980122305076762368275437736326929162209994816764965839457921067143353962778282313333508875314092369816399993925913685793815592470081503249250086680573520362180744399290370111572026928694951103405539806683667870957822603913955090540441931373095167818113885479662678015371859900778401710236524856470296998924102003099652983807365140281198941823080539688755703525205526514164599777940509500098130876475039976698635183932318707717490630961340690079814986036307094912979246142281730549653869275561534912297385700070931030553674439558607305380551153452052804593313106851553733270637818755194056581922176679905075782594328209469735153326847153632905350914056037573699742883596862915194732973561912398127865547933584902278322057075269926765778715621657074694701644573620786266547902016842257949379579058810504719002413547297062668333011369440015804744488872014362474210998835033385941610666176594930341893766064110947484357689137362287298431531200389244255990400420934114631085151300947715598673071154733706851474732071707546859575281858836639596500944729257905824865260748362571869057889006083475116694646197398387532035019585539693287165574842857885563558535311077253682704728048501147797481209275605696099006361530788456523688929110687427137890229456570990955989137219819709289485502829629950593292917894513443290302612490046368961952333004448422941385575213199193692027726862605486731485510705951474879494428249881281209225385815825040594295436021419035881365494541777962421148753685038644495174476521259409254081456731632613205506673031846308483653344116057831029786732954492146132198590551308438820513885031914270391037066162818871980927645832836224952092460822089549127382581629464425237051755331713798182687955857895412857681240663578839640469837105490221477346345080273932714795311144256479689708508930085681538089408015131512959645926196648953442334278522503318778064949160374935300483468374204867625421539895403186080801911127428948334235165948869943390759734915725959838238094307802613213058936350753021275716168204381285660186339528599578601996815149456412072804755774483819686951630176908569516851507840163988662230676675742303477400324325227454967296365467258781660974742742064309126317418049928694933213552616197766374108439564672670159040674269317003103268832144876815699661457956924006757097104797276970000746385154712299926673691734575869540812742312912428801757173782410270436948540059379277247808701754475952466687473916388110776815553713813675663909287519311211607346922441332703770650453999242717679351051818201028036989158537559166053920272499570632942236005513171335636515318548589188322891565916883727613950830151622628950691896549686094972212827532836726266782341575019248184618645945134551103833895662143932737295832678932168807722564973326985479064427665491591773877002470236934541920617425308007342451796342446180007724583492021643458075620829955477056494845188493750504665115410513107415285178494555920708330931266469083844865333355089045322170125650849761589854790342234129098549392440568033015230632009432337235383948700063193704614997253445213324135517151419165337609802712394680501769477935714759543314185297025986204365161138315460116449845806415034315624938328581955331725652749905918743568929576883302214429047704301966270477507889239151190810948632090544070699623888002734107604196869770964712112653405157691406713975356846785931302232446658339090398892892698506394849507617878687515435332626602857294235562485588673449608374500752038093722435272853535507611807885097057592871909074972829455935364543569401106685203583100259026554586721832441499370255618609574536555199328030073734258111117103476847891564925555947597449950769029463290416067528446024800777421151804194963782972597555652343179701960851213443620919674068758988508083447501710102991317155857740133312640055434409213292533154988598709093804398314623175443709995992083596698054508582185856444195353891882191960881847484368089338630854714571640308233339497624768175838022272013810698561955566555685744137545039951527442871804422467134984914297219350355503268368742275321333990815266888568925480572763408724588891645511934469660204859442144001102548337550843544631443984792878093891108248657344038278795050740042450408563407003675803958384509447101044075982626496395850231131668423640864281314514707508676503230882176907509062833585774006062584808135794690047152584667059518120461504152777221852029321617930694083270343930909809613976125550866887406085907517384717606628467131889022822754363430511636671947323749254265631171405515043644104331119335846438074915597573692167922592616125378273143561204935837495776624890698949045479047215474650859192053863742092392725379951851260923840145332641251715900810255618923022113236186556406674826544916489235941067744806953659894828769872522779079879343511264218916746289063092579942957451394024790235393454229295443640783353744574138231743017296260692668727763549627999620507167575167939938049804916410486882561711544415900728423037637373070013397167517025269371581040991213328803400647854169288339178166991081080162772296566183119068846623890763907294590821141118512100740053246086616744968896171474384288407916004322133930246260450203309564016260257825371893516051211256880733880374842350531967989857623720319670363549885433910845058174942835882967587502496891223490627249613687065704502747140547897749861677113088618592811985684016208034534697014331050169523812771623684952692622071249001161090747525871279453314657115347993538033987548976545577496896199956561792152997017996553969715959422255883680583354889546838400755159180408737186104506909341660396903687894855092420393097139299233504414372027754760451203443312459375476699927216357445245664106231041184264891438554527037724347935417060620754400099669218985632686188477660050127624751781461638154948175572836199612480658818199891998171448002898636169138837812190189365128230859418179969904953547739535684273966348272895290411094268960175634391109262396769789279621293490869959903848164380353238601528933555329918407493826919915527260901908315670063560665656964038442585513483508384484506055237149139992807308637114264925769851395138390813218141632038011108967701754123816132370564598360573547311876871559122286734903068204953982530224489043610649476503376563673127482186612741948410916283347674603538444998144079823131158837295553574150463881995269920069823969663342505822445548538885469055413004321673381977909344724480314360751279623256068042300612017100056664841417110469895705830190229945140054979201178096442600135354429965775222982368231823740066482904522309673047237670180434358593691393631321096149219553081008532887516272150264507870972440393696792025017089492979387298466825353235583379611747447153514816236739342254095787372074278621755749384548010781940139325191620035017501812081532853811022395932037496466239669125403600482173322940382876853573400712302750785857740974398726817809441648180640408578274571243093284810148243971508864848670362120675585880489723851950805883765188887970106564663793029732254376282515340271610237022076184383857796021846959819028999136653120291103496453327377931578361922783500569798210822476520581899530112880003741226125684715150915161289093621145445527101563743970999168151268755940770688370773223144451770150396027157266101899453807218867303826948109563161200274029112109157478665457530306695273422605411851190603634959296560126600871800832532434786470548358679807648269998097684478228688325979316919597859402610192323713149091814375954016183331897544139594386281459011028942981405131730735934417421375414607561698679856694987001563227293485738078874877545718141775693456013636177992320581614416280846780046671516704861855110467670212807552944421213272711330922742601360516823814938463214687189489879635171841575913174507717837551190481556050637562565294645078312024731030414243856541329515096303947789340565018284226857205229840099962403930029669410468813531021925015657285678127490445721755223128700258706965091024651235480531534640212116734129768636013175418235801415792762748972258824612077898619043658293990694252751557465514940861547830589970878123902355945186421190061620719154385418940288131322849167470026146631288384235549454814762648944296999637029181213546659676745299436503012868181774772645896704199806644324746385607441235901176923736298992787243418253115200437620963644195221200944916663030078184472906793271958443370475641797556489894692269609662857447851609501919666921497256069214811991124328077336805307754270155579882794589382821934715455282280534299356992624672906368327410211889158835357518953218668970845146694496419505796721207135663108825723398595820119000438862690246801527425163399187244040758693045910341178874708133655197764815468471286994324558181832446700698014674540162893820235980597100999739245626138532327028630870762776886373292612376129817506909831856242310211344361769441333763823219428267002794386768801617936274871360997508050343282760471237081658709831007051916510915831123542540145540966405768990254447723116480622911915992343608171110378291771007802770615507630449935094996167394507636891387928116646519829533837560359096018356192189948569547140410672034935487055550715790427512906204990082232510836509339753187164461859902298815479650035892441188266663194067361763275979455760862617520043481986266557006891592121131811220823369180333905882413529644071091509488891484510749059854825442437662105617293136189064484567622630836724475888541940437931793176064563191572429791123211375360654248701302754643371023940901614994083756074621218888198565117201701546998309017737159387940301442888418454838497610514292547372778445863669108482545692214859314160869010693360186603752205741121550409576085084401395795882517452422839659198695555768031362192301859728807161632454652717566698218719688636482702166529925456314057873260466222971973300779204116744674416697138539884355625428337528256120191607454107826824258207813214333046588965762483670878013232016564558623330356429108689522131649126441209420598302709260421505642986895825602577906122218989534812668922917505382128665911936975307405466372818649043723378253376043197928961901612517979572516220449452049767023471269396157868069967323906460360743319299658721354498816798036622583334926350574555422001106843745476599936035621290708220651087205579957248520817848560441274174266247374045584511903048497519782840831750928101856572914919571540980640415127198461306993486583611177745031928698793485537300676849889190224875758165644511522205066756161172472657274695789572172410078050490618451548495189263793303801363426764229654857201811085560698078998426951136395495832186823751790833441831591098097848987261245728315048102472800484449772460914558062036865054260103303881920988464161510787030912659106656108841549609853653043598446825173183400705268130141979617437473643030908900954143977099930869579809525941015867246081331591383727710045994960744196111454657029918158320318044088070261282677601121187179704435299438980174214072845823492707615805589943055992471433666996372208538849781040903617347525891379593505158681467363282594040303290248804231766023482084509690626250900204348104077610212611306727238991126538526044723583028753773646246808747489954232613727067004081025550818575492970122736314748921312055495964710538242779346148777232279894269576302063781726142793510567001028725729661896452689147021897605671856289027945710019594497456418525398874340867104560275554480954569232284045555697080644715776348825573784097021711339606540674523842672600467936508638372409805047292284454412103244236579413507685757310769677330210516295010374222546141878047331360104632490575536862401458835032460194653662522069763772274858634404297178847921206145553849023283520672761214245137375098069063930756665111106669800062513963956648951897890789864029357984376942394715607331101426397884400920598547909117222414970684665034978957177018271229760173261249170303306267417260910076679293016308900612652840962357028321103705996858146748577785349123286631463841058370100345489832293598246238691804969483510378116409497641378742777645971959378278659328990410375019199223238886295631080089151630454955920727744357300428179053353455110549303810749242598711192827864457968161415275657330743793864677771968053613522523948788989930371837398236536479670155290913330565407615843385292664330640015102239645843430606490953490312018013655408008385273820195645508699830267214375000738169926238520870487032358209160052672700234806350945727361396856431504786377907337830231233271692183744213140499661644535985541829331226651335688617879931801147896120609200391650147278385768411424567970338285423141882936159661066150769898964265997494424474226774994851718945631625590673947620457168030658233216090368534186834272799757631000271786935555547903559095952224649403878296823715181091807876696774615179736120561144059078968569980709206117596475275877894863440071653335935529354663645537218464752707726489734597740165310340750276478394061870095822730469081878893232820841027835247996690843838714874923655091256795257539972240252591641956503690223324023876630879127678486220200783846833177573403953575008949872617518996629598472034668784453943047880463452296884539860838895809735853577347988883198192237872705277218736774906716332042844027386689255582373198246715682894994456696775080111194582142666267897695083090984229725990618117603868113857694449925809889378214373016428504838803928084946853867558374991301175431239479367603590718801548582895179458713172822853419110239979873719921667019413735809250300563505560973583737279029087831846608177264750466997718778640684526900739918443127618430870230140409318188561744077982988161275236321833572230457154143970544205584312831779044256852256797570963273053185945713466123804406918843465676829020585608458480206364687133847574873134074402780288528611667165845384326247679000417104743356445531159168636557146871182653902224938829501156662838391150159185917384508402776661660263863542405120571070859489731524495184971247546352658984783947111174477685766529954270525504789878602787290231862444653661205155236430939083668520615404870682420009596017177057817624014175017905262417849042853180769907844575038427618722167355611263432562961393454875729924776391195404690390727376705513476846442465631019620616586968572326849656551360913307316642961517362547613424112009231835613785668476379716907549944422558728356766258411196777933963960512496732210699278394121396513726834339973190646186811537881825178894900509001936681478854000557393422319439976311305425151298379694871491488008472697733658379451299555826647610671374939151487669788755516587119438318966340098241812383850762954357607481365154154217977805629959707602983983450874836270847104038897086803584752381563760918449966495160435870971881512275267756163600498452899778395498366956205694355019277824667539722866136650176963057131816400638216747361992130786193453474309511185462287243133591467928875566575695859765028796394867455614633750675372158575510630484638431547132158609815434300048814879520909017130257312708045082115684320833001780468470003435148980773743218983234864771961690638466242734486869927753833040451805186852682611144483541930570269138920887628235603333235414910806055863714565887220689903613721561363521295946728653731609861361426935706229116232686811995053989716765149565017275973350350131236541629700540370899038549439971818711349954518264891142175449725832392297358532420640731946867196397413187454580097713000925353266996242140319347422583806190977782372274059258908248569897713766670889686496240229352852546260480387582857610334586579170438005530101483048464306563876897231849250214361363952877674365718994136417548884523864656113582313349930958408749889781467758368022494781360020068154694149736047147118821581197800420350159549788997745428233559260398091985841715155218482670492608314985612002380753844600407797004968275538149909074617096926566489993580715522636018419715433141007859025297385994394812620642266552350463918696420596289532753533480194428135826077664405740923804740297802864053748142001644572506364696579932878055509499642021431727853731876728366797428731005503557120856512657422397510813189536233127868804547761985013233603274541242771482730884947957396858419677926355582478737661183794014767275394767438761440631054469852938156921253992570647502398773579499160778431458297086808954507748091179214503077072306555144555575076402947013689116228248399528231216709901816317128900186464854036235678362368372441126679666703049455168046917286650484944805446054587862150409395683127935776173991780745543656416839972355763239763672186646731371821629066084460467778219064809908600270307897833949013390238645630456996913269421433301576485794653248461353519375619772424056531968314856080811819174076571688486178419598240658632550370066041237576406405341816454137248468757698970868888644748518863285838015719983230254056848147008354178453203951904721320169147366134821947396421835234685543067420639535145027351270130711271063350289707079861843263553183224478023221616679245715072987660892419743796442515939304946495531601717769398106195818384639463068011096897649524494533438690223315519475894134493312916395043716092479824774603211536586618011996856723481902833827577949200235995034560478139735372390061713395244007922607230579004054279148194344668514730815759996013200094466864745860274314716541050598291888691689205057138423842636400034645086083145272286526780093308268337342176465722903965314850089653049847423745677004256154542142359216394805492630570788754291537055516908220204701833626429899701207498025556556879319565172586666390299775612186997983352257815048129723096468873577225551518751775701528654151350448488031382261273566254391110979861052583868460627469961612623165011467954462448048914827256333779137826033564909858015443560995616925172892618367078598920953757792762401463524705807898512086314075359456194494875888228209228229448051947656158037844542929607003425519513246608470543051063727758459455749632236999563575421835881920272793297882561643250262260589821340931677524258874180190759465391536548494693846932517848176335825974762722191273674167434455157746268154146623122352752629445218595160095212120586433146071941465717301744914746546830211656861380446305435784552512766494888723668417043226247719401396449183084050538526416681131964038614708899372282032285373265257803065446693063170344176958172903805661673878219094479101276981644242997306595250620054383400427775680273828217900956879734790331182498942397329307301896935261350919302724153372097561102527537005562708134607051536082710365228544486319152269375729396781519966190190671742575917783306471305142484499307037515687831305866023157969365158374612632627049605066906885017186061704951067905228028527294810228036032996774351971256436122265545807289109088090145966154559872121747427142084822918063041319616191332366616198622541033910940636333846967856864767719946354880936879015936010765881539554971501208676452395716521701631892498480528823166323954943781534490927192089335411249539098883596711063180371640122544259226947677779856148460711177020230140322033979729497588616638461739604075518425691818211500937968133062804212404774082487837273771267574220608892886288173726443315300888354377698899698844198432911541626686372572450731604534305328311768189371689119085949895265412280340935692883190404524161102310641394597109230631362155170614387383727191033737898520591417579788729351156656900155049278818839666645996837297150901717572116483039778335000073069969171930854286040721766026153132660777435095781207179609515887429151705660192449952876514649591495048119216639881721473373970555329643618843687080698898849612160781079690096419699053056386356945219702244849208759705310586980665986530643330015743061863575262971626096771910176462207514215432697433454325091168041198408539601691702005517125879227045630596793728580462658072602889435626589746534101276933671658670595571704580263277114751474410686048786760007947216062303287566556144351478200375043507299673030495242139408350507628067153011695437530122531125774610073111624749596608223569617182282321476761742834206526693063557014601785522801286205462725377374638908148071804236698300747298139075414859371730022322239094699535024948431069023258265787603890163819667960851790133623301588193935398987589802165921034395128205933370543437688698492858840244787283194905930382133262044129113348078637915888197910584415222540485002198736343835202093321056773456272765072227464275686655368885855297831701517292012352604766589569680003735206163770967930129448632673275402056195110751393853331872876190546798464321242427259847764797580826971284359984447248689242076102589025800245668186550814790460642231748348241440007485782840749600903181156995238695147547805667531777194863374460278765450538051587050398731895979030065760742263859652683034652556362510730037109578985543568687508668376872702111449436919535953351316550819935278363423845134873117212838285241500175901868676200503648303661956684528750192309741067826090361922428792442096107789381334672898212608922710172340433077435425470451662268252740939742035257904767842928741989793370758877383759318441988345922679421628681232810577678373113805702734327117970244564533270633055664503576844104224756870345279600326780509072077210506159033277338432277291951631123388630306501677790678017979999340137796239686889711719240082113463838678140731320175418088782729022980442420343446534446604298461610676331787645401341016986519549696116632404612247199404304522340924723617029315143173850169970904406709084092371801842601805471347306838375222099228456668884584193288323684753710264976537245203135768641750106676927667316494139494173474282708051675533167618771823157075784188614818815697481837657141646687420976929077704407730505072102125625275415060058297299421553075496403994307342515758717161063773321382957214502626826980931071292679099690581285063152998543621801611386499791251258073480761560395159498076144644712343657433375067239532334075926987494711519736230442018287280271114476970005258441286268026018238507036225250559217134674950164993788896285315589813317173481498411168213074179257525969611809813139055094274644477231997227741810432053595055658477050949715543349873716465895320310111338070039156589332977963188814891724151089399313080035629538745712048636014880905373775082917025130736502652614094793154781503410032787148890261912519757827015550392214543627095220907647312488105751352034483953751247257559418666770745007023971652858091745172879429657177140406979424689092935072445509274639055120708020207550016204167214257288849834154036948341573610396701781082242779660703591972634971739517775381657007105409545402337919338859931400916402944377480807398953604487694193478916167231958392102737098084615633736251447439953836949503241674586863259475536852924179627021409999415010260456636825076338138379314318300598022362227756351858613804757851476701751146658707341292907707133443965961825342279071284110765743769718386924800321926251212861721822285349527712348010980900288894432311062735801445169845684963611700413845067329252778478356713534463703333707486488250109413654513678023210668686327417192753220764502403655518091009831978763761090356538855563180487349536598871098085529992138077208755934315864698781353693583714129643505449507054380255968260793719835834578592732426480916783524630934430024295158841503392682483431705313851866921676039688154981395448751453337182672215544856113125675878575503189202929397068747400144895004313573953131274459723095129640684595679793975265357899915324682661159234962411487371161017209355374652414759317496858381807656955558074414129570918654867425339494044231005919537654186442119131317908473683194780249801611286612468324423096674831283596314975305044188402756603932682329530576497927110953265421532107734349301254016088737002586746501490795255707399009679464584830956430592150023510697167187389344634719316994436252808592022943098551656213386581980291087012435166875136702431307493983164673879783714472088122126162029143609158014381694552856662959386678266696967957309041311119725553271656849077385364339373632481227511017341138615874720908044295084945341596695911427863428292642204601625789671792550456254277804727266210124820577881117680076987778143426427321349814522777347899035377443264815023717269346770993301943781031462821935339801008362009411460028691284134290918999712953646832720915999385753389521454902785663411563028544649453606707132464426172296468446963517379351540849665101911784066265740757147206704330893209585652071626861684432360101184341620958912803508822567961544755567344441464391482687838280685269951019596952671302739425063393438401916716068153163242261378541617845007387508867413130086728989202985364887807072854856449372064095903201198024971955985465895643088216461094930693095162336048592721906779337851530933919199058201081370466947037426916173863027900284462024921607681734431568532923154845167796660482130165558579614896694129909223011487755611733309998180060629967808795217147133518087800907266235601119243657041057100595404406343891643772104042636656965890132412204905238127980107627044135135888081947130857814699467617222649259264526914150009555625177301257160873151073818357201963131328507482174626916310606095732383702251560915917588476435204510336882433881388124315672505783761094548674449550387501806526990781879698005395277700185692628632848264326006598160570045665969650136653704244113342290687740343861957248586497341304582234739270227554865228926835785207191376690557127889821157965740246339132809203124892893792563793398802019495437390291971381386194536490821697087708799630407521997728907267914861319636957243744745615969907331357996188186397446447403690071236406214662934447762599875052228319900877774932254872136957188450797806169914506400059118991226712479946795460972976385240716107417875629645249330533750871158473117419278635531837303053530479765234971990958423428604861921784982620508304923747591988825022169725824550221955899136808693426315238933444212664688148607467282771154274160207664553483192791964784273550692651000692033150511823419795285930886304245934884620677304356116864723989335567462579396611639156915484824257443374242527042996193360000182680522768537950508194738994263831768555235337861576298806964679920518985664850991914627719039686836291652040653390533970324690392176980384286692542766559290913564859674893158202773089144922421864714580436700603292452781882723075052457776263750058471402962591808590136189179551458895436692119174245743482144964004631194501926105545437065570207707554851653169022330109269965174992618139717259291393083434717421924483679054960240805321960475224442531373119064957318942524898831602371229057055690597785529245515607911198541537903343285187508600271899825047989601754342505152371718895165355309945727007415953049959996998179654810765034512466526089834583469098463872665545800571827139138799038218542379882373121602034864166856128800513801980351442153029704347464279856626439712571637860416238588049632563239068402083124779251894434580069609224397091510750097253028087337378485994843591194822729675410526574986611155255194873374070542780822039245028539037959015882046587863364231806397307130527005258850708157908615276276979645290125204603459714696607474594164359470130110261089984289307502898169057522910376564446379245063548672072357577665939186180802347699723967814892843841481392966887083810432894669942184959809577156241184771874448847358500599906573146147769496987645895304701333864738036320690569955981592361917790731290713002305452257070489161739440408671938971320491605914525148114028232033346920920237414970971778149294655146172366752321897292975736670755713616170956880997362614046942294688774300340065216804631511212723388821907894501586512985485771464864265793711007935357975700820052515806365625672781121844191972326659963558508581986761181159576165239702999927217034107934390078112873990201859198011189562319777150628104152211228160782178767871328639781685931788970301611629178251001598828977523312550089165866189584015089371886752374095973314169159622732092253601378342700764433769485093862571516250245102957173773161065681216067236180950585407244905158161220878595252513255709171921478775499370112202987363102118108676861298012005117736036289091344523695555106153348962265470989297459029337853705189521538728390516012268559354697801423989863259293295356275413760613707718117437733850837959538379836639582664868583697454874870633619910810645581266324253536030746524035588142384900195011194583506568260783068707460021994447875786789292961205768822447332146134303919474968937182874759803474852169348046904639912417204458295146641956950574080823198332376578444449422227635955687049552570030039679799655185469362365216471762716667913861263325738204999793453410666222937387997422536026726075843245105092559903413725376643711244263246673104016537784998864158228217532549353593436243830937971847519103717601123802384501574694958757848901806643115444649436656998959134828117899054402393588125418387717655382151790335798070025158193840569972892282005381526167431538556996196676352499664938524994987331447392455917213698624294120102239542876395907227682282427727838902538820571964040586334287945673771098623329006650887465477569739702490064902592180303513954425311247576336557877938273945499971162630943731855414002867154673918709564274400978457222387923973036056840326859115554494616263459931605192431365433497011008334081782729708662952527086097692265484139658500168917103603824290120319442276122338552822980386287604907499722513693921714800871480940025574092439019755785997100914896534561013236456606531120665770775803136271380121058638416766810139991319757340013736812678174185350555070807508697398888750475340082567071374081296123260391115936299347843141434017255500954151158288946290135627580041801708349980958579868088919515020404224493340078902853041214377866787638066327578538878948321112134771665899551443205581722515043200947163217874099598123716016855679504931882169944914401504053257453019986039696702373360754331154240992212352665606991803880182573696036084167120866262453748517683086501793508509541545838558331740336216568400121556493325297017088904058459748064807471832597457135695197341677755542231823811762992188383442869385880607303143103180163989331412228126714805564384567367018477382183678305371921982974783394337505862587504107731193383014617838075099085299730617231827150480850951360717164135593145624283746902695864628229137468400648963154520708476592306837028901588789753525820534575629287104395721954936346821766788288764858581771411832813823470367919488617843441542356947861831875649120236537007198674756468292826152218149224856073980383854589060852075042415935223809457585322753229700621560620362787552435304870341311474698550317183179068794696107474803894543110046332324878123919678836528925391212006125491784995247502770896361660845422016625937686934118684453005744369504748544844933551207849615234509870463836781546904995298708370364998296761271682961601329161659863872662575491190062158393515121753146292787787680166328157157625294396580818642408004000306940962856790182915276292815404498947344414464047819291211161640549042017349430153793707188825136287771763956495839050245849889239171724070738756566361152420241606809124296180769084459182500189819767389054293310344369347353219415966254610529954907017835917677205069710310377749945602962297062306787201221991945987330806813999216602153095320644379669279982552352734271722140174171733518553012990497696145213290051568583565884807604774520545528255745962432848610056028667980355281512803191916574190617214982788728695899905279949492869232567200107803198679042653127767033290708404290427956525636792058558251852223343268369491275400367462943201346460378579767262993485894119831083112008522488019623023269086579640994986416336689371788091275476192664749989823685907083698530402257279330416379226454748926425103147749577817934646230572660683474333055818331769999576575961346785300702894303768806988557690993966468616369695733515307239441657732505127561664354203928086368474653342119179670406957629537618932220725390192115775297816400946762823851996395283849787049291655476914993426250689643114555490962337327007432376371340548277684677826342899948380667210339220494657618582739800068372243865310374026864848196661595530391964079499145610896510233619476589923121264892049908459802045441711943366446860949915634431335909092877262830324154687650065381293309754932404606430954155349776751428836764235190129210806850902407177854226383673561442930221635276928202686260246798619671548040681618152717301895115856909824455865023094141771501059215186421614076677615467839951177704043250532584089460995028750530184942495336120324398643215097204950036025409873048926926733975790085519086134130593951639883132162774216621300927331013913593395257898444785703134761876197070301869611824452941152533728501891232914724066736328110572948539924717051649137812868356229128703007949316777323750971037709941169149975476349657194839296088183712527212918938305863922031973083569332355242925802394947720538184307325890834643081723249997235439364351991307503580915075672026185480278805356925814881123457544176781177098342941568438032308225662315325653547267772158315045167900322250655319303350242563029136955115769776591608207184283465758237437988838786108646945069261244957545307804854721811306002080229566915323640413691063852190991987291009730504564106940323898917998657261015949619101948607445222776419051363472969459227082930197095296321562297656502002038014122238845157863266652664937338452090022433274902910238513509860879059025860044788252201885471528123014428290623903953752660777472739564957665322641929173884785169751340699454623512399095591441801660895071779601995947649136092340464753470312601155116424066097889870641468285263101141319253484187651942545761827140450418162176716912964627221805401053854323451218874182153887366701570573191591809660647458275010764395295601984843323817305578364858098112139619558964226492085824483525362587566171656981647616406830437632736265745952162609455768206673282193108028417776299875550029780550846505701602007415429684452012301956123098517524166055281145120254435620620205390868057729160546922178892384307025982502607631048583356120970088762767749061997860710687944362495183275038635949079864050974315493433327549544678380218504683685999082515986629434823279445284903645333347638319610253990856150941773011793561177969226208010822777423391800009722671664497457238189495798422585021669488803849832157498743868902797140047221038267151339534614206333668830018143686122687628222613739883874350201173601072928723856715200184937545682961748371346308773497401067551012558584848675307427400195398326948710549060835655382563982134214200319645023269432623066801793403943030846821178833073577413035445289338307757613863433248229267764420485688983656105021944843527189605003408141018574085551556363650198420412266464479815464757531609243929301637610200308955378097408533459931886257552941700606312760365499623852612492946883050750205432910602248321396211790101556787738103279570967182120939924085439267764706104961465589996555093150362347815993763760115759319624273244553989839227115460552590399426752282896041537108590712308906304866202941413348144804048611385224050887797186713919275952793781207636591779920383942324946061933561374821021277287077811542745016715609150285832190033448242258398408151035711717895478749106107975063795656501937817575626781548866131170234302309363780142202468275953181258154647971013505663868121520294199231722116817773182496249277527165363269081068776760131643693463266937608848220711011926070946765432301626664226040945644775910029301502920033348239980347107600984254742554747733884695401685001830276589258848610048992316277411371885344178619567493064230284773984371495635017198841539939196855941685220046662981064868688268319411850893148313802939776151662618194998423795928762323146355921149392856924370699789193406452516289603102842715336978826378546891811334627897396806737515926414738490794413945748179280894737065060819169662799574872987182703128606269333622213405230724231803892229972580962199183148727682849631363723635420968605396347024108420287491535704018868166040957884204831428495881500996125024303058378303709237830709151848295673953507440522484408495332258277910690246358131857170800633026011458660496469508939578375981849327530188430457936419492358805293366657078761421949365032897692772524750809619185817965616825857505276541930912565063667694760098780660834096347853506023101860661768712186774475904685013294321907882863125424845594712997376544127823043865179492242160368115574507992435871540006149537613906792083451750812939491572238653267986022086674522686547545634894529355104293614505289454847064685663987412957269417038608952328394113654955339902166611150230249262049569275122930137991417097740659015766621960556855008836551330474107771172781259139662566023276494673189433783904952021414155928770543244417417682064213656217747692894963724773369121848700885516137629318447386828370658498506973309426063517812814432928662546713356715661901883885257780053443518381212491932752952920507957477305749433393725246620802251421264204982418191945143336725917308145363880365188351012442657923393192346962210942215515578105854942799016004447625261759411467646115613259633168222898558045505253827341231387844367409807785961749268520069970448353512510774910248781955085357211183476431936389584618170401186118735666771061698018523592737556608565828670094580835977785828983896309925500594990266337924303752554554444063981556377809700305232325297202706164903777325336742259347782770250177958134604794160258390709814824513917681759960534725440207381262887587036717213579216178567151697299012388264873698280016801804608876083131491630371730133572191169069807250316688089370302536763816943066258627208435139923066323675421100605724079366532401880913930650100855538947191253212997405423083208111436509211263401086735952017102622041996871048769555818549077193152648574475494011679914682775779751504810662767956503473245483095379149497093444687980066197624661286526292118956041020527667833199318528010330454239803383778625434176410186571155803892170163669278352317432237935144164977851814511626613642831743250362037694898496961862963551380397913393351976068048694557448444485395524804376395316679178957068727708107930269172142748556595955380059661047237516035277408482485269164765950627688515274455820524728237353591239345517623051603947978093006563114022487682228663545207273710857407014318445208677602161002043118622786654890170186053846402354137927888765486990689154100196616699424899345115152038089451403035898554604878240138422163268573376090116292855052255305133709343089431831678145229680744203627928075413648380334321051259961509653882633136888471130318595275717044086612087345233861589404585753723619762966052170134788297701745771349002381047619332130170700227227667181776285577294646901546885164248744942358643980749254336357299203832142038577830443076440334542218245815228986826712579809606218447321174007240230500284099716429089609866490279491064590753004600025268355083209532889864558050956661756237641270588747892376532084342282333506833496582042678018547259843563586662251556362611176914107724016096559328989835745670135675963503761760218986703767467354823819161047629237685030452136704349098608980327701774396656439170205389989822092372777306285785866448219056284138579427387584023486794176877661015036007571893300364848459541305306368255026865822976338126918390216923302832770423303829990530098624132589772134234604811284669694676864562043551255680521781975635991563622470388859814857515292250871937690520494837281735784084605278400648536869174133171453687783442988076861070198756602592038042128479364454180350962523325421464327884475366243608415799771214540486850594219057876274262565582125621315821585209940508678619760385833273774826626445755301938763270395993005856096252603918187121064210531819458478961487729072532631379061619231361850165189909778437358249654541604672493923472294403584518996571984075514728741054427370625505191628709466211754750271955966156732670422362664392669851493342525398146131099860242254597792273144716479986999649014371644353651010421370011325882865582278833368975691130543357850155218961584099533332359334914398228163242594809080980912528483287636694775808537113161389782601391674631006756864435883966802081117920418836249407456036998990331066442817873563411082690952027627613476350107676964709831444474402781902673903408389660609199123466424013953572632129966013283712893205390739315140049350658205010624240607016757702720585027031173262516741186986132762819911628883885209826125567349295141883746846690198961094590973751164619090068744227932207222010266642192352650528457538175664589895730705670492653884150779027051624041945715151283497406299009055035977906301637109701370241476904210867223867364519138492538454048411667609383426137106811682758644673873134840533278612785684750193494062890899993905634928542735504102822259147284215480756548699256482203976915699730110220580199229967093148245632767090150268163142728584321826276384608259675902782013976417658908290199538715195753294409101768330004650379576001955223078961154390006098536235337541877392200861084815816816114902416515144394304382963134627155796426132095971506966356609083349269908284625803820633688281912377482930825539650507199873301126323219371057066619742844056837003336415834457289294422279998893034375251981928436978682073414923481339697902904188365072786885597210305406943569371626643283420073853720601857859996118363480421348154042057310320590053208992264313552773453680661783225345129705380972623716455633169191826258042355816923118520966860131391375901412108017300073007907352547348065902637684665560850037247202609391653830249317081466575253101057410610050153252851813494286240866378740307183785535538309619236906011256931222475756723288079084760431083962710292386190291500094954798926594158781274901599403853936005749696253403568302548549059283868100913709467184213762139938132978871215117682624289433127620727857039134835112145830052076505501384972170617118002554474163549593966905347800771835694862506903677552109747230457441295289020613887373813210458613167815288737155167876161701022670710853624267862943534615721360419540647115299857731387139995467077571369247513751864349507804653822904762328317080852936359627637250801712383334742242223417191328451119840330454133750127959248814863888671629317783968246728366253180399744482889542714455684808682811234694424662318231853072088048391695635497092464701937240561627435163196336133638893518101311392220341761541836812312703182860858396372607968659078259301197012851476351181264493886982533398118645892216540835577101570665276087269215946424223561202217725300649676972666184817896916102408461984258502864568571270361296820373897353577821506306151293422574959432500782778499872325436605171864409711109451844925901277773631117920321670230936999638015020308804763677192260736955902249966725818294280244307545918719893016895686125577354978021356666091922679217695629459933848618092597503986932909778608442536487997017437719199032498804491272743990480344655835182892229454586318359193901074384131736120852944879897472106186131512569891457539561965454558954251006666681101418702699684656669970099683215301882364523731483231278004599388465235102071493078898987545119808460172356811179593588467900083816713605475825164278439804747114362705158045293340680598015875026557463332317313046632278835458352168324670154109267470761693688281219977203443288020652172689350732942409802110672359943216327761025057712288940850724484793870402611191535034687978964420379160986469698368989970257499471485770809703407005134699930552876177226421000968364086280996150608590145061808718872676562474725722395241212970061640502946955412409316543314796226949700472798867265020536146451084093084757115218230745628789313666047809710595069510076051800156266066500823793910254885570080146697237175917881976845816926580522521077713276666500643070972691006430079418809142678678303768119023903363224178598645680663061184746853658107316340585543333941937382364823762976155063095293437328235237325913337679302852721518637278919131187524757253008384925544129152314786487292074846516642312132721331449209828221003798980193972660551259736206370048674293436361881577781425794238079599313749209313292460933937730557816764190610790211040141428765311241594968121086677937228408182074366783121226696456481872340192776230641045602642162776671786226839456906214102795204943735276209748425049320002024380403671930653593040269944565499635037092858593317042779228638850141462460276687526815612026053432728313210432806807787629790850779179129829203953050079435335810326792056169253801371745620921839356657687750445212597416069816601605722760853826399137056474083853858871427241157581326140993524469455850550992991060472267496300155613894699797233419648440776119023820263450102802402969997302521413421908733860493744379808861380086834610230268657443067743532709275364963076026247810145006124730767591543393498874919566855784256244676552998424480401542707592400490433513953065939055602503948714622659379908627618908789263154697576284933827011369396528637396285946865503371742414861753032330700254704382469157307716089595022666049711348181099495096226388269663431957639545058512303296791516640680280060342262344941913602650321257065886955235766481026110517071481950509335298630384685098822625072428436244528024108401979407752339354382449184315764036756189387351277304592276898071121137157583922936754510162971216053055697937176614498627101632411513182136179543017337497763532862822341761665468248304052859135048690474125905720326698553093150694675161158614120274069553791430126252410980537516701282890659020286659414516497579593298277011861319754048164281259604504902084695166685481560841623828709451370651236194625247701992964344412346845749633756085206275955266151281776184911725786819378554968157739857275448158545957054941921777040735020915623223704885717909282201298358808968477830686718583030356860555690630303536625168611851479927998805235058883558387494915465251969394335739725190921870820789828187879229229424049225416488721909849867959120438723910443503345797668209034096170213023786575295157860283430463102302353607941800379476820200346040643763137404046927347067859310594740511893935249196030642391099174578741519997602983819779514661226012731733881699812165532758675871997183822392488040440445706608852898366452658102930300738750623876903666124291922861001038312682415357713344826755277783754116014691675312822168685127882967737550662378506701110165019062809552174114858273282496574532476750539473544173453050987701591439797994523343994789738904679426561856839751448323965104314174369965278378150517273676640814047832854764820584107677029266663993314732594309357981150044192421439432246110420456278836219344676467269269477558763943154166636372509876622546272216359363416635796972803830745049460814595931702309662762913496244942306530715799028287007729365459005638331248722996874657138174491089545949177587513110377102263176956603560637849400014285060692585969582702136445501088651422121419871015861831815130161078510077403592354576163718136833804248390155526645338376051883291345291925264211879275801217747717254052827248915499563824997900000878256700325785393375462980428040173504815893162872033519912002593529590444943316504335357744529163223718839986426886975250410525270098747784571267550663548890721816669091201237714939319222923825230060653838635556538340786320177928877074779242172746110262655221309614167138044246886706630771378631282537901102571930228268190612812046913673045442289971720489042850781559702518622682467600055235887845669592401000091784988971503188222823107158215682519324683976756037796838380961160314348714768515890753145090023716298642882379440569703679237931322898412647876957609245501123679537847898955302915469746457035308509974320152510359690322861725881593180164000408174299414696335850766752877224153289540509202131172461819052061249633336010418137883299848703780666462645827726660352399021851842642711215706922062185624630718642263584212278957320250809290861338136756434707472231206782776646614559309639468774102415614917215888881355484549233616375860655150869993637979561988476656604458630629198734368220102010367252611068275362538252239833184986648457484226172313327538347317465009358009214867158592243763887704615626534466707776402202851506753298749701582988880043305842899646029872469342461121930009607051600352901167971107984013795421786829640524023131815299713997074252248186228576084018171603557692384290277849716198567719897933712982295039242356279937257135786127447355103578662654171023134295694554545147061398275326006939240577644733951429192798545325349282433726410541314552916579987045110419737022028611659705472594305670710764936010127493122709223773957969670795695801688203316840997690035589715819833136424613874541037379193289759933968210230912606115974774168206985242946199530967593177973018187867604515218729679348987781312802497234692634621982225190039566373445897273952356811694557752318695864212693690246737938056348052670537749042839446205125522214909887095395891894758249431666182596898069985903900035972175230206044635691814087825737948831983930676025081003951317064375687636579243456309780853802595078058683522889581730662642646530633036800451194307963371713313552201919785852477054626002906316087900693592197849746975339538545161928702405227526743453343994282704617681676639909458943664597342211034766250671944092035436580455732225910634660351572640491781069067648145687195198791077814532087207225736240622013403669264506778836975561077757635776897464243276111102871653805249146365152452893029785466222891180824818995629842018422182923148952372850901518863987969122645603414767856999105251763533192422406380546304597854558283170967459730314272930544533987701233954560519122331138735577810871099121177041175828814952168616775710939600374516644342765009389008258934981684104235571882938926040743161431285850437506628147556845235697584145991811656158634261596852637286475792702267741868979791556288662168752416778971476377110191693929538542349059422886490359989587072290298024148117990776905029334910509453742978169529931463616354623432104169472034667840399914518097735639778297558040619384129777404157955440544645026781787785828860981801673409784582701942807029336734280475345780152615072987622452241035571261210576566001996225739052612976943891632359216830856282913457541610088411615133124182047693833186460459620436232629705749327051331378284985215809683318568308508743408659919430338779907370790078748435646859686956326160703507738868084663760138723857838260561970697189653801855078593902296753441004333742038683795406499109464844796929801700683056249864701871437644765396932547945984288202442205774680241190641260770460957460397349299104192824445250564930237487069292065572710389753560755438500091646712516881155097397548808173023215744429808356384585409782403822976944712482186341924980920238936490064251507844973721744724729697088667212950369231078713607357545541707281621444248710792781489223205740668048397801484839199337678048661346897714337471240991528827737275733224638279832224584265171362057062532953331025494525054294613803763158406585075626069857119894189079033277711365787529232938832742858541322009235042731019632999605553855334475651078639607003753293818921314385893899964294063217116432340205721507269163802593999178720191422099442379220606059995288472519607864868394937278256187390891381650150031440924965936677610759484569455309794511034804661310553652840894118996268738784754168938763409512742025273447877168889194821515117685771417896628323872027185883580461448886312340353860701828634169483536848238803276158253667236494036036124401814459957374865554050052159892979361795368765129195145325018570516851096052811326109295689743881765860251518664937451036711322439921111940027328136058824049926293727220518159042028207044662483808942005043592799373428069751715155967103182505114771213736828009683377283535162888152068764310206542335679492374535117984404709894726279419520678056936365599648423071043226700356324063933786188968878279041283351581816895772088441489756867898147002661193768482044565378635350150546080623079918154883408638881806791495051022295272847088841094824951465841188830421547066457027311123445812242354129123609734290374607967191758503069014616091255579202548843532310484575538989409121921279010558145703363629052579418763261550264681960021365926720783758462581355316909180572107243275990062880556207670356128100787985827042803921717026912353101175580149148822639203215476771165129200574352671183311551963434262348570050658697815118369077259556557104673091747792530764733853814736405752701623387732395081149843028372547357698889746790052243543317988175917679881035843109659862151630724674135849100128146667315481786536511273192729253742051993810416916128915725752753092641004032470171008802825598411262680621094168455592502279249343081668550431740046396740023584446512607946096343064192125194685923428236432734287513358995887621132392938000024341374497148739742852243697303220917775022709636790559215814590706055627405438445197009526915740107805932400270349104430995893386104500880135169539949541688386230542408309956393975323607331992688355267120464249788133989387526507293181454625068068382771371863891716066922860699861085757995268614212763992557885687882690026938992291017645412052097732700087157442244861231167735929988074520317641094379071397217128620724888831781097033252186563228521485947067067283453403548766273426192008793755125752160640163687967308385762019302385148911852024153244021763969507236102447577403704916448115059693216879089064896271439905228384798378826619672635667717927076704253779593992971535930267833406962245857093462008467879660008592884604663095120812748088296888299660632004827077596931440586435231798509287027871610818672608737487197466112239492159226737453105151834835191698519290338516575289190855779716465954138658297562578524119237843540179385421976841872339575022440687433284855804387355028506432611919444122263128195648746732811686897425053909862300742426533653334397879242786929214492124000540990536019881257566419379440905417017222940017289881153036283338400088011066929127612598314094458618708245757613842869996462338729360557143821473594884964290912293482983375203589064581183893345333509270023901563583187846742480168466866569368135030397298538859440717201507053726245918871019286517112865377206481760420082452806904079680024882979154675176443400397747303454322675204665420068087987444201944988581145472621314685993610167287126563356583838288968190115574434694231584931007404208527374640265533819683633039858867650266570003757755239229804069370195462670756076196574038128415214544295367716219118157982193429213974266602764988384521531400962398815731965665780669055632961201113501583160752504967934651880118136275514847486699449449370181260614044337331461042960376852134262485027074730946741778617931547416544490354525633923953899335128383724413840191599932004051944280902443822152856924817096584380914080197084551542598491834496487063542442877463005696770837331844610869098987919888385939487295074014185830757353890448291590816633638863448400431812419713563463823074761580729556669103770853144878158834020507809036040972374444858888120895196186719989067990220773681143695913082272984687443784963476978504962260026495889409941067406929275578018159668123934258076326301046881755363822898850022183540458072207558253904243033205160696143317367613950677381156909795337576850768532164431645553897938196813791512206390440126180761298652112752920665153033092910078091252362213221128530877623083364314009039998373792390030733670212008664508719050301860869952137273474799667243310783745589035792296843365521478196449961720775486126340238034784889811840640951839047543658332208738217379106142020378404280265681464478713136998318906223212288194075584534421921736427674872332870350576329727633580463425237109921609537366792273934310914525303801525360854867948718510816917957837613959853335682366694056515048926100200566336058275339961424413926614534554172536865768467613888254440193061693693233758380004118056900915476203236348523133075772824791091252340120243624280468815841263642880269723885981335960688228258106163182640299488825983520865241910396865024482390367058589565522196501836821857818061885507302197005197023765182617177815394695536456867883749767635299857899423167260021654588114972896474687194431123006157973536551755795530014923646903680035476090627512486987728235291621168983092785229685976025263583406303518650919517030926602962193964512112359766807306210187773235020627714389449965283264413344590624599532490715283010216202948029169228816158456710351374552905686160065163642884033190725461284225506126740872910911036649254995128741567565561393578760897416773688458640381574477359722165967303662499698667165239260620075213476323779086803457057658637881189293744453612826221113357253963465606441546169392677741673165806986354535347323069573277349055697883923403323600228957347757681410111270166979149068137252397499098784666391221295255410154366977437010839530096121052658956766180926650049562081430920888479573424124843842383797650811716963423391676130404622527297301037933434498211319663470098835519899879431426676941474150721084030029175870435503455970692886367074315273946510765206720357740680547423205655922470614192240344678039933964897811188274383819456678341196387845688155343317957149951005895232186206635847007763226716171448844626165617930855471226888168419560046402181928052701390533419855557366202544767692337849309630650924061400917367358508905869100268699407443898055383130327181425110919341258102112125445443454233003582773306387592966587717529671233099789861490379143723734091333370475404230685223965000782241512230244020012598361465332968473279431834429331612526332947761024336070940420417332229411388287798815137128040743295109275804126805229785657915217149919380965121506856748346874041196180174015565934521429267804887512978658805854335244870568831510530559678290391834667275012314585135021827880024514750343279109547093258207121815891228995369121614196261265514332854346558634981517254943707917577314851835672059930794097345591222348375887226617110554022093773951747123081892278604331942629272483682942193847023330356177245775861353936516652886446501048343035733265751716505892658169943728324909927708932198218784995682550116017085313112974870729462843674889356654026751406027608982476474702689693374865532801458105245479040602261231021976204168525082052426982622079318512700589779933317658425203625069796583518512304529677527269715401852573110315240351436346164571350060043549100566107691671415141224175014484216507870244523539639603449675878019992693890622896759120529348181190784933444607020843899124757460479985705826549986509912335078086513824980700086212745454517647297730705219475501515716824472955460055190229990369824746253625786038184646942313264793636327053653358684994166977009753920578639493957153715145880973583258851490081404890184039347469324246985177570231532913397567389485701322781544124304725576308894531587889490863163766206377507459800229247668611873765627843570323151709872962504576802321070162478166977456105853087722318938150985342831358224094665819284470917277602873670934108163163582483494668956693364495268985178362479125400664611999002894036580033447503003884167605782675310798182529765137187079653850174267888833165383397317568817720518747513767528651624349941984635949543236257787171010683856675548449102356958961023726444459592673224764468895088663366384524241912333075151453136395010613437913226243602605871502589672628724819944213338762568096514558767291518980599678649162102209448842531145033410795326787457473721250113668172851242799072014170737455085049819466578311681536984985809230435556387364282675035798176069540351532146585934091444054153623268128781088365829690332172483686582154477979037133846814915416872730974333320202492298198427507849089588773161397148941755707082439135151245730702510649180048866938216768259498178522971764661640217939825812171581852820715100561612596191325783154672602880493064674793476970380491497561829885550771897083828510171874653597346210319392645404857369293431339990509708811744504666371777302114402652368632559814890972627852325850031898488132406918665489802483706286784068484507436077966009656225598045482507772728778588281829610490372607882350719528991866599056455030903007914611748439274831035448782405487757488378911192130687576132059310723730247918212288752109793200380634534778895586749751701654493538615415287749791297033465421007141695597281922091145305191683713924918303158935075850577735952566633036099722237465822165681791413424376473766854796818482957477285244778931205564359279263529010941533242614942854178054202307686544210830846608930719925123046614325075698011159126641825442340895055036010129644526828381484883028867293827746731419119668337925629314033093940311303475075696911104039460592337133649650749094538105526083132553051784961686683464618008427633774662541317943460308583858007361342804833556833370699636991240503619795847729425499369517533397963143888901572404483755915724348758508559051845466328767203024285615445931118498527683711288556311813101230051335758363637064029569631769353029334856252880040658535013596712288018617940756281402973575897590891935211827523779871641442307407052875443250257771124850046241295673673524349043696260405003891601234604574002714397238306355004919607259406709146342024995795215025137225676428522398871378884979190315449399476149162189842075857155828557031207123791225479598380525093328873998829114911596904848707726609827137760645716221515464635763997892618089001940621007401999638337728601218564444581066384675532497638143315012716364169025683464787082417340857301178707371526945450328988023290174818253024602272367366136313189419723699832159658546590986656552858309524638500040607713937770954763751621848716544062215995497592975861641692392383222634827278595157093855146753590884045189338710405157455335400667287980500045140555417415680328473009418307347106670235151752655666705058476990483545834378009763288334837425347918312943727350163346387511937121530149281076544534431541147024123295843895062753173770757611091872123159336228885835086664061504795736915140784063823941134117859286331630227392341639620262174813244452560025230237444950857370280853504166337763390107530342107081759306837056844519894712214571706422824584167748241643537643944647700373978625675080565126294200846018597057979664848634556220883315624900851044702267611525432458481053444780848537532365366858351595454121553538263043325198604660621523247130370440737225233057042743463875492299378044581116987280557029602668108393002427487091312169517608934157739203490025103761210261192830568347129420811155741637283364356946797115585253042192388224532714063536578382916963910858284442017251643437233365173168264307703508566097089602460018420370086346070545997744397400453162017694113893087953500561042475122204349267893367337453928126699743646507478299061685748161247661925264546015639840219560463517093947758273390500332630402459509157656079329557500977086611212221780949043875202255868800311994266871333225181392986453579575455238156017835628261807034800346965440538391054669343555015312193822958424505878253252670417775666874631206400038835804218519897923809542643825459676917661579725046848767738697660779768655525549956071857788250493303632734885434879601495340866933064670369332896635652921700233392899778359405736684426151188829422012139923737913635048527266633584974700437808749506927200616682240947428440671104797657396302958943544111141948009171522514836029130690962114269135276905983435664601453706823723593627063734728289254004430243635760060989624843062865781117352058432604175266511380755237585935596542634746659662017228216085549937528421456348617673030595456034730173604404657927401071901372116910939811068769973944674452454247823649376825717258141071792435567511519565285929099815882792980140396697959755346790237434103991096350841572079161139500193519906921207478439335993866382248112232028215320601209343191009840416914860988625602324027157167593921598992585819051278677461539669024248690338189417147407916690615403486952105239821124951109018942336447157292288398766548205476001795053317024313552277949066109642107870122456154033062148060940470828763318324914029332736966539046854479455807272638796159623777087319952204160211565628015692737903971728066523941527128104622685136029651432754526008832201508196607403373975171882041974007912043956953435108782793036412969165070741096565100665520079453663009513945211001031859018735165069871788642171926118144075321373122763337079487575072933773108163005767358922113396686392476796263476903547746786690036151076446200399312234355446133546964166089600606181714418430741997261691807759795926326859048852916435816989210632744201821299324245383588421498075793269911045482851201145506533075326279985565252100537525119542255022256749573170021537534607417599346161142748907631908990453737441861546949959607896998384344233982892277922884748850860542224555425837310573603431503910043552260211682513651028558596200880072893982705759306046861227207185934872716773159582777055556885634331487992213469647676904634376034757350675875036765669794534556540610888189267442636842182260589832101798856357689466118004717726378582979788594818351947927286335070001630908860070417798861555919017300750626468489211108992217654495790595328984112496491632768425529349717983809285621173543745555245323921986136361744300792380593239499432903790522255022440739732292424769937564027146545701462503983072450303254269646093037727228732781508683221975383498336534153953395742235542390749470490128771184910330426484878407155270622140119550828473127202716671789088427966494302467595552673922061858731054200578617691214714524893100576764627109800073804776943478667496512932623641867505397023534216539943264100941599383892135628064642532314855908463403088340741557818388174492507506753287856366340170606643277736535598712332283617613012603817918545854905462778243857533478395745465467725591529528009449164798441880252402106779738402870944229294723352770090374325344984884048884797396469087233280588993368010605900692243671276796104450580084102022125367335697505672041888621372356837829434075017817189685660005334598482717625337188795974345003897923581528481249105783454542517769572057204594325239959323948158655696648206087062430726889429550051498236541706497048359424180988870837153845231327898744112111463011199103983565893246228759194137259005787883447533836870824613621625016044867719558708561707634358147691694063108522105569574916168025129985676771230699537216737681060920949609596707841889436382053258338515438869044880598653645453930368651863436107114995367254496822528255723587823779893757471486252598652597484963923123541061139582147941181368834821974360462395497194778711054563071618349075714139500941332597138786634389373578652116955669150745801122696402944618981415521239622702044655971546936503134358618172860118080405799822396637087958839094959998058936509143267761938186849389832689400118048850752956772477662639436963452722221790812420774587472724657784381236167719239440007371139499616923277943100144600199357271301437803792059654947728378676466823811757329207166399189167514725259912323589853236064655640747002629508387106681305026892748552680334058828641987231682957151645912744903756752243750701364261222579178214915159431454588785504013018540273621500028360802838982578485955587316109839606597499341868729468811646847560761858646425358361233231178900308420262303363899148212562482849382343193782880252501014985524392972611041095171327033613610474413010476627872161325055585668259367564228614403324154390231953795961301214834694123873633546027445474521821336892963381225953266650151822452727809362231471505334457762439799106078536456224852965658505545382636675712799054744809567111514643016691709613528283439061562666991727090124743307474225092425901317568059332331187479176162842865583115127642428234424675904363422175508676075013069769921321974808171014679295864459262582324746496096501511880996869848168719046512478426239935752681233371232407698287843511069728775354084534150026660456290585952077224213789069176610350038627577849336321404596832811810819986524752528369011089770637137508367003141063699569027551986336724244827952963321588832919852379653149830039315615864410925245731997073805514104129794204195083053798383139750978777437463072164405486837451024321238625855545612239212287417596448873783730744645260882690971508155246099746275445674804594440494786804196252846153698682775929508495262657037747880441763934558090994120366238763506184802199953560320831242716873510831301888804947790340268949437754149638762466635401069690957305417402939234156241284359352169226436213354585878018780431420477424789616761594193447539869350261336703954613133975596366162913370594979788171987509158437684479792701727868891067737102847972222118514064405809293318284158572710966456163745684694930610021746023432910675840097156572933873857805883490220276555590393912108410023216948415028174946198114388992816715309562792088894192828563371133821134558069931832750010417068411393162698095480852073908750873953097266565441309847003530678499787197638893399880407121056399597134344444660352235457794924261058529772538731530771233725244270336058518309031907764913422683863679935887297071600142464790152658196567026350797392797983061009756513868748849079408066283131219983071798687734207851675701778217016938375057652713910244821154191905285938840560843070839927070381748827755162180841623494204999773487492706475155616052936493195811484224518632669747989675413664933603456352985010244634489953858992689034004773423969117853670182555212725071225411705375841096161976625074112498889716843208840606696553338491834265611742971037994376870903026582006970040782837189376376821686207504842570235215942762732301238343120476082995217143983822193645170974031735388704105477292941986973819061552953937718920903494322294439414292445210779163397182028775586635315587336886808865806442886856330903132729019503600802359052362819154637868934253537298875320584030777449229556423140679346820234164820753800578567674333171561648238836771929468778059400093393643810367890859109836080554824444957280862443708246430822473447538320706602402090622934311407538990219001495403205324511571185921953385671348126906815654801327846122537043269365897819426126979805890766041059734930217584208639259700286362219358248063699762010054167243566763920146879188683898570790630404073764915224838726431567866923081841529434260946832366109444605064348204129581022231824369898902823074783271390107880862922039323074198544213557975553404268484606067504715594580816366686066142371184950719497575201976646199796089203369129734567949476851968747318636906266819372287696798244999353591331230620205705381154020331202840856779480056272834036485137652884178682624090866108841074770451434313093207617987821638482738422011373178808924040823329040729685728031905639268883507947149773097423805954307270021510214334156465746686434945552706471975077731727087665121219110111470566511921797040071901681730059676057347006113590246105958975656652661505558779835294825650714794221347210177527877100253541712773016445228978351705629987765244161978185506434833351309585812908509716082136215554868780585300065004338981466841915168445431837741016422588303126092515943292721167931939266213154176928078148864745237390855135561224200766615126683533587112202337293484891500393131349912827484721163070632044453084965459709590210747730476167011669043803653300045310353518264824992911724490003355158400501074748475387383053316760199256226691574909535660620826540387920311424377553656917281142817859846902775725055703562252142090823334325094538328008068423405561114828927664887178767492628537188055039448586176602244259145596469720730958501105756255592041178811742208440541358340344945553326039510697965797717299115590339112692996898596171666538920679633778003612569823896380480027815445442539027470625132709985309930314423583866361505249199440078834057953041902155265068504057494121196929309430361676215868884256078291320511565187539336497891137243188109093776326906124412823177087407575130043486452023836694858549452164422286008403267887547503027558408559811289506267312709451369918180841039496363130108548187451729503686206574768077971822317238182504730193773447286234543119409988641447303240245432136046860605036221442420190876176101045714977324405142378037403375110583920901862049271428374630186587776974672789349758288634173241504437433286395344295538687415987444415182977659984779231790687345256223396683681501121707908611981672216979704753516054068022181451313686314553133359450332612785035056610913544661465934593888893792856139027601781523360707842534294910135189219736984537811891820847837190392480708956035898686139202236186930480487853654582186410771961682001304685794739340757694277379058212103162115260662575533384213084403717843973091439638564196909949639010543173161773651208863636426126764642435803378853951393923844443147984265242485636468939192223897392448167526151383950359546465648340987446134325099555423146978957086484128015368327187600184069259726011213082804316992811372731304262138544319435802261689960744597032621447236720332342939452531311233925754025873490503183521158613485190785395009369684236682308763202002145365573598837880219345605266553224235374403332225822335379670311773057462412367683858209799894046316205816075220752821869957100313764343040379985336945441970759937081853009945230793385511455590989811824128102910097749543135480145354278190844546988989621209090025407552481516896597684315237965086170024664410118185137980894641266943184468531002328557538146911956944917999863990261573667590266541889702887181713713469989565532993361730648912611234169007410163887033954883455692619345703362073617218264593031574344266794229903754308961285493014305358840585413130272103777189065724016085600715266188213919973807716306723505684059645665859284624305510604073124109203260475409484610962517962366852807144984914554684685178111888969609604178018124394585719143324109868550032415759112898953706548544286760852562996986883368803989319427909897125668826441543610581568812676475904018440966228860640033483302856786444078831908726851945890277974541281402660497992795933692789787661247059688399643621425896576520728234949771767407593506329348706351294491761767376691796342734883473468890949846680171569975860618362415459900073237018939170433105293956386279881303336609349904983272869713175444467837849799742782016377757422206700722183558559633554658533411040082781453656766580609930779936700798108192558274194617898208546843769046737178219794859364278586709629886217237159829825720082565378540254800129645964369525104239155934373516592304091948997852550966485128306812477692500431598010449963662861680741468216738959056057961431908230515027421956293898876333322694623649805373422958641323933475251735762460204931660169843622219303780329311404133561330415921808761220980947224640531905477422615621607225778695464913067682719290394948066807868406463925551277948340918324254864014154668252291705400466327857259583793955190437149122987806982540021562139283472313813756544796616514336860708400586228731140186472221718367509893136104166366084956325656502973725694365101936574178511651843249984537864597395549098636180343314151270096413539888437593094162773681365903470957825921163666965193530903774737257318194204736840933147050063801629478681091475777566959636393716347962033118045153381894837616140484745630476387017803875193744880692325233954421333851355362613106752140907069345276798705204946420055753264250463379023530825205877992073620680661178357542469063839623164135446888236545437085755998744276425037950153192991452830980708121696035659742133118364993574875709461680786462015588397630598154309039144328027492225176280783134664494526596888694882532568022139394018837538445083819546938745543100747926686518546418558221605995418718067012889565317268846049140621218456788342932833195654869858660204385392722464188330015259073358749461477094606274123877204693431675180432402270416299589185342709493883561673410555039478204845310580275698134659379332192679913706897643515725048367745971741077839575912851918863836457631713396267613545319207358760842955679303396850498798835644412664450159387729722822797597265265265555659452576805168125457466963236637957683168679335818051322568136010207836068643925435344834744729829441942870378086610911221112110947574956203531836063397280799414583451566928673080426814466383062129506184269619735187059226403755598158295626247540095941661308589332007357639473029180495616068163386956393537088287371748134206111388768277502222282072397609442727311119370891624558336053787378070594742451065971059628469777922782285697891133038720380998944168732180385479633559717007253512875524978077258343054870429192113156915298451883485884795490821678585869413889626843592187379062338393285757279216625193793166729933536834742054411191129745849039252450175553639901565996610316591183395180570037372230304663511470950439104481037854062686511076003072048550718018273411529873317759741006878159426513197899906900590436414469542683522517003191165432477063406117776291266943326491329281599792203042133915733561658017964002230856549199452570511691586312719118996016527148945088337067180732663176716227231459296705617172276418756305161908695794640077145858999291540964081312668568947401968186916232578173597057977561119258084030679486439103401768016919041085904883267263833739803237680600110678156655243671235795600297788867524656994510486763662754621849251508081250951187484826638457978559357363467835018110817297034883385821916710896859619657887766753940969830472473366761925623575401211403313119485201217257023803714788039569459225550352580712246841613808967320066905183747161417554679100718260397572021984790437588214085028605105179367043188029902057337623210064734685497763864536713421236587394316174103668586972529768293604551452639912988528541516634161753175554457183479562493870550598692820023272380968904613320301446740693948016908714489010704083095298676897878833799530871699215283980053276047089077298995605718404925301209885511438582589138656748380384010418007851011564576700423891249487118675728760148461296910840572841700401329863863049623917361434758125060689099593487142478266385591393523479813544267297516009407738777809325968833218580077039603754939667650075277878222535580118394812411797109376660218385961094939880598080248793542023069761098442365286960903292807720826742687616281504362231628653866431613867887939192222941879301991156004157067040304325861099892451659940053830694601379297865375454898063338146276961661181918556918234487574732787457698731751994778675877798593192236596078195896843524823480125093458853188741543493565539231653107088497251603049603786290705053399770680853423440034623048494541445843347594188317374145728500543572648344092970688744362810652691678954200109432912066822268273007920430939650161151504857311704351374026972303062114690597355511379018125352953464452860182107655249625970740216416493215512098205767467653358598231664552502912327309786608855502356957580059977611009483835920532216387224070225188096409585771559824129372373445631813404974341407353798129816551507736325282961455232894733043084956589373125080041089842224684696704843500159877250033727505009756926468914257594525122064929221669145783931817782662290354330661329178862864046982612309433921717624387815311777711201145226272738761058791124576511797018602750560681958017365749492579461519388761794783334166034378490548849268329549351126657287881098156413796441173285359708968795387065391348189608289601668328971457550103203549908399317135863089796516842063849021445568700562777600480556201941448541822487586413040216281164945065855073334127787072677942940636305389179773557929719778991275549321547786026130098560657719211105046190406815230420748989092758570420083262912737494681907682405629719180167896173957490893562758533804910782570668676619308322141146095766062591538611558687032979741636292594691233942469532750397332057218490291054918959627006608310539822169800980520342312243603331889229663114122045900404456752621743889015384380848644592820362211068140037546285957538476861998203185224793154034316001869392578759917308525000075155053063225986150837130164595734205328845891943101153438590651780655697374699479376216098009692431115347184197337238666809608946144013556518950964190885578262627062385785636290725467910623379433260298847438674107095546824297473490861575337629002317011563622019866453286983890973694509756586223637465030691631718614621164039938008724278821855190705985117932771565652055856837427592721422758104491890057236196904960812807615180670647911580805469841553383434757835709754200399487177707456515100103067966823855479844082786690265439211651068000875754476659668497709690447567190965384030818969291827978341346038410579777283562170098397183355881024213773692053260258805187548169499262428475567002070270067212743373551795254368625754032872292398304610373151792713165809610335530618052134600294311788744213419895909406882851297333206330883489242420107213920589047420474804782293195076614967178945900085451971267037859159732649367160634543933946068476672437748662799681239818926181573857618330735668165814889159040495947328863998823774142321844794128473844086620052991969328191303771941489414320112622855836741205979343023184889008991501501906352157800440171993311183556826944243316947166844482058140780490070199704930249784889537158434965474434919401454872015227279386446782300827583307416299412713940787679065388405253924305213929571142492498386234615629971437382372294934448538226010746887131132392072140404597136903270953034214862493390455322219000959748894595505332658074334289294778548275944926424727687089246658314878607803091023870743786075038682443064428538000838555168241351708581146924937376814658811889205884856960008681862931668378449351444194510804154963615488578626331932925696430732694258467741814657413905972380359062449806145553063016789375012361464461759171981577548816400690875061523913567557178082332018628925841068574666895135841475187422541873275303188789149402593259652378899705412397918958690474603134372926326336374131927788663327582846856943482046006942025594622406930764165962030430154348266824556354898491389163555363034982131108488554420546113337595081639107319674307062000214164106817774065561607494055792716069904146217308232061094697508345947240699025197127523653992495692121831041421362727905888502372625755016221346812777686811224928795336996648091769835364709062185557938648888476301120435497821354453544687502931346589357971979879432823744679714118079651165244967091330242791040379175128068559568750560953799726392837300095187895818788811629626692302676816189577564329651081311192524248530091672344347441613535987869184936224066131831501273912309473569056335501666523247110445835414731569620944350992148975739378009116115748177482589186815521974008027070112854895720144337848226460568446904615926697987710723973502398707158060375025875114633560038786016402683252459225607679001715662541318947990501273288669469068592791334577901989499429944743357921890515942272044177294501075112267879709353314736256822655705938696807093411956200970054744872949815046412455955869088814783783642418059678080834770007666009932605166682136555854360522202016447276351582312126581621939577999872573763091596639084433101140685611515893534105548136489851233217643523357038207110483402108583272849845463624905689015525084497295047299622236754847709250543288067539012931007596471544001512621985907988926183736603784868775259366886521897821125904899348522047412150893545945691707254898027484598661261478264186950758085983090602492787809220923468307291203397135243937269848685709805869822092722534998315480904315331778516106359293816902814600222492794725329655348828668223709386846326261745790010054077852171305215279695301375107154008375991376872682140946787772346095901042631537701961441889493593420606638385669262375380257256403406313216189329317096866145180428198021958652010810567308163641367209168865368466801077472320262462682533860220291093008858328777156279745237223411190742395486157066166966474780554697614483902912401775387710301235200087447501002069333500217931258827478681814500640435210339273188607645864613233804186584934750456952655739570370949262986747857332057332478069265292060889230263908181487369337215437241906259423345274236160463608227434530494658685784141095373111566189932012017438857221186458657920880280600690389405250215930574320391870922044137214967483946471398649254882435192253791397968140044130969831602114063266410556740581797404400666792299297437715314103350372654905619508273144559079241917956625791521951018991349758120886667994724362378591211396166040073186894842963278341678808508320373718287052946875592815565368323174789474468445099435737051089684840876836408800450863022388138231572385645714627765521444313414175997648536459420939394533337846033635564606107636438699351228208781746627008680366326562158683508649418421626482060365917571555325184021513154237090221659523702794411047573036636097416442693919044130333273700005777321612230714880567158347539718715972120100793888564851196018057312574652247201121420443248860636301861137390859930603120115086219252974055622587239416463984447954153906932227870884355572731541758213669602202359820266381757655117342218653269216136962417377966589299613300590793903115603990775590996398068828449752431454720400971500324367171395291617621420424082960554216619516656223285851170731858063085100892274275916535706263119132257346605618363700268218514541890968788912810916486066880374157473649892877483822779932646534455093769138777206593285974321203884080863834521027855379323010006978814481030351815802522624687782306565153036921362662683534983470287640077552257991048794153760567147080469953381951215061398591842592240448802047747015710186131083648193683982793753104151558819067892378543059289975896266382158605229736192643537241111753613114560056035711379922715806912817157851448095177552873890138235243265419169377644970730626109210166757179409079894675771358417813194005372659519356575106137561331792646854313519645000643640948525916248635324990368591103086271363728488138803628044979027204864312647737538785526393748764928163456732545580355362011467682730385346201450510290968125121742824731074419381100904793053221961462461144091731398629028161289585107305915865175427858980291709133521768295496449790786971082097714553831633763035737655312750395255385691599277183680883772718098961357344466966526228870315725944425738387832429364561782727811433338807180682834337750640720052742012922605092753106491609733331653567046510097124277657973240760614166984847503735747020934392705018599786026052031495667473130545430219945146789763977726153833664440680502800854089954936607711260245583717652727658807608064167728897248509957778766964491902659579219070278064245130743162164116392549006270477992161883084522135168905139777927827618307954982090441720975050956483743278293445697651792644228642815081770136555248531575050781177163468766855545161018775192744614009581457082308412004017544407708834514266540445275208008395612461273111811245546241948229675442807108471717757865592692110657298459924362205971100266764360576593809858317231429279611342732594674856745126894976964707913016289413148456241296072035827001241158911403989238353059053658217598280916209881033016982646029947764303034096682801975451767718122475848244166486807042229624318901361072747430370033488132896994493194972902445438127887831652140176500180048227221221699699844869244522279636202289365183639075627406616928768710846794366411998518648601969992401683406323577672970669601205169476203704096158908250330250805468150686930897411082195230272091004035697282708397680246891451640715442889713950416682898015635018858146320779076297402668130791314028096802397526894514972367722997999857160434964669255145608770306776403364326492150615175372977028775846951619945826884656131482572396845737531154574282664814064212182589501361999561833427264593510393199758628700208519733212881175109675338941695647332106812670657246591656769781252542506513541394472500786228520894258039510983792265684182690463329214771697050591319159008274276893596647671839229543364361568799321717133817869947979325290184207499051110625749525294498212869001495393716737277920610601539891944863758305758790253173318399529589693061557957018935215676918291946383407084627357388595279628154841999566839243643564412813478199359734352845548145075420132643953727351960833579182164547495496034854204793629030402638171645455761906587864809865977413616373195367591783932202559661039967489907554080676793485564215086553387278518156002176236647248579609907139215202749515014625052567389868068650775966738460481521732376868615168406585003181157665906939474486840933624991269052186477616682455525762709340413119335371225058935824202118344170912465281359574234246024607210632168196805261494253085532218001364654918726046275660277598140757442209791640805456853019427047059768706640467176437754547989927966044242777049740471188368674182556816307158967279885688380916459092383894833814685641160894228378558550990987520906306927259031157962289573714831264963686636893245112871311286137204199141790078637239486542137827242758314644721162476435108754051026676708913281120812273601658344526655505178591214889004514154216269424650458056556628856544346070579141817475786914320574627917868631033918017077045564724063386686977503445963530515692003605646233356916973950779625747751591671107158261414315705752089776193051266997631564738526018611884752252970751584284749437140768567065841375048517325111155966246209742376345287864910408691883047607636920507401652236913517647993294607168581218842288194857949263638609798606757350281821094750785307706232183081191134077944818102983929915246740659343651690073292342141132326985364726609984202122488241585345853747223753568459459592050850938697066354165994176313679190862955341237389251904611929471276438668117321394160775960433786743347728871278593603688504482359295438425744978126443529968861888640742651091033560871415897155261472659685354065424832464085576693994570366974499627818455125272169649306819131090576477884163430480502119591345580660147883144845648060691875707908017045626868414529899193802395036361203860481706719065830377542889680269957538629360251916908121692553214571654943451500083264041971443814904863451377903398796044830560466718416978786389216095157113141116143598069194311792236375120832166422683894508229616204429433719816578171461683499272827580753470234146676905401143696829021171570725403625458909295933926279209762624588324264729807121759495207631550544477095016711115205592793376096205186526921739832111368056537525060601137086350065701728039801776642876138959268544965273478750784322298909909226872202699084235841123158884114756696974119926319112417672567932087003095616945262925060043465258632482969413237312656374311604690324866884092704025416882182042524256958760638295424635020806831886038255295950105631309251777932285045421491892797981881043838187081264612355911530133209142261676365636873815584307174129256516989762865027074464542268383826439077551483825836895939386061571000036888174620367326141502472194549777299717931672062955992123860194102556730426548353515797040384345524278424014732684297430948019027630841882691888849475140552121047380199678811193871149903622868941856364659993550313803975801102368051635193202720443737637725972578268770197688437971165142841025639853638586282189398049159870605801875981771000307611980795389105815588881299650811921357128061269712361480557273604731350739052172893971476053651316549271501613322362925426395081832251824286101223834366844762470738123692915172068340150840333739078360898416659668890586861853813083392995354378078873911480550063957545818566137227753730227670322285695480981631319765087254564280586224355731742188308693806722401731277559690025510084954844635125152075596860757331375645184972030977113249264591050132705693998704496992174673965550526049206415287610479586690598156478065097123889962545553848901956696522692072066822524799038089089538064383197641519773256798138298731217471503327336682565434728760839833765831418719714231509990432364446908762402663141164169105873815751297061710438019198156124394586378134954683841687454122225327275272450152425753570893084079701065169195049469625314329926304374622423157310553407228395576289659507442265376966708565741064616116752005458983158389600894802784953817271006385328244536093540873908718818149250086367919410289595416578351783024960312559645462909256069059382008131906701962769216534627921401725636975122231851279636609441049216662339772743737968832339346692474319059923165405290575766232821360433452653933643872237595148774938019288254833732373070329705104265304772768194045532119444499460225689474274052359892636226744835008479499514107114571705220053394449122835457873261239557275767156808149378785606975623340450644618597470729211867892408891156654894625073102043310921558555193680498175192346460783895346445488714593578883336609255112674023900075177467813981258508906137193959621539887481543569663581655058328974590014072452782846818779947436167328904273114891580601850562948133697583696285595252201405649439751945342325947953711544404664392449281376583218960764205027139800874450588037053545758077224312363528647549834826903654762073397790329008683097063239102496260842865188589588166254943408227813693878567830140796376120314269861481896454490148174862836392945865690823557141188458576279442365781130247718449478340654554745758959991586721052682338541000309586363370278304820656842161979122446499455049351922246354260053637194189603200912430058784067669482538158307950977481367506972476470409236483955521299311421435552268577074353686377653554966248197602178320310982789854468735210601529376869586930204186369805290970647254694988052175704491126727872880321262400897325252063018478285422309016090794164114376139461838577477512467050713925733462060342651562571304556006215443997666688390662147305995512775310813309418137738360192057107504077862401586025095492396306723063353389431214442072749832490697465889652356471046749733199658323332751862155700880292739419272797320283463565012299004456100594012554371879737595611503607461861977616549650964789963556369201529724567209934425059485214727072753946587872719111327589375149677554738360336732711611706009841562655049951530666797466352691709542516007218140022829354268833276837184172214861643859774965649908508375845392819496038059415382850040094793038536515306329418988153905036139858549235283261214964052012433683596034129433232393888391788722615118607736482916502500130563939023390691177446227428065846193420062303354174640478017563680794895756946702800990668939143567375870437908424707900001510561087106090238892617239888044191969167654430179352826311327437026105082616487691585045612011830461606886362242098250694661349140168614104963236307882744575971314492456102202948431219699231562706786791141560209951529976186190286591926943685555590747321104559660462379612106614284487696499786986322731527683432027712291106728822731091344573537632511064000381390034902319463477418892637152204110197479583204903813292054315982306317886804357949550120265413265859829261354804157759816383714896915796219754037109950692491344478589321849391423087561650885503826134175571555555107365066027369358033080936913382308697534824875057617272344211521547773434169643349503935432426099909728692575171607504076694667279354220757853960851611043741066009219582347385033073140468449373296951400812441314112965806168724647393352846723809774738535814383321677480485642832191159941431433319306091790627337096750262614758330414345291668481405091023669014243433079284832766626057411762917071786420527217283178352751368866608775310946013047791011277457592341002462682423992452833317027395076425977943048334872802298706271463054497414747850203575299600412594271269637084246900941690660646792692240174935760760661805113100346404954097032659217178458810394868732974820694268680374290605394840524235752335988708809624225270962856751303137100013460319566613086004985705119708534965381565608924824602322928743341523480668757389348672351474730464038381916482326072508944016677011086415172268928200373095182774936475245439466290832120525531682873196537351449389108615230183656026235451114535086136513730468315906385170661821649943803494939740925321489212011496837778644612833998918583329363513648395949192928139345188875271314513608943885122378150911153075306552003614903143853262852987011062335769416911090836560316312949724002524963953964123232009695682726270988174818351845185878574257365959397473191275023895208137418850693325212264182586596739736659464512685767181880502692796218442312871694579466006053420063458869843066125735497799406377593301856625728018177389510597233921688412348969511880812036400543496126558280998976667895608432697499590086974516454414669198479528762828357634975144266358399599721228430612942384046364577022751107974506452052450480284936514912098261355498425802774554047729832742077767289710906041725267697842474196531578564073615577920652310066747043626597447331088579999273035707931716927904960918413251007209205455907060076929277362290895734265509005589001313864717177112756828154411242417312267715567912228892579753358157455591160506469735976510845121690889893216740875518886670306454814509229079967886715112514903190019824957940697891525519292303474203480328700183156525916307534902967726894718869969762928627034066153600268444600707235888011188917160543676883145887544032441381431638724317938831713883147702291820126924095061104358779543957182517200013186046300129159888759475972401097007959520924761976418151440602118884963779691603800317867670208509904152679841308399914061117052696682228666411335734901461474102389546629376030540567286872051384161633649555495025507763239593491000788354363944869124164921165769775822187381383743237737195321574989110334677531829446029441983986205471336521809748138236212368504072885969940495119550714574129583984176644723017225209158823996619542204290904664956431244133943707053261151408448243019710294665055574038466633989011414014933335991139074710368261940869263751729654783288589282812299690780754589300023090912194875486452846827656052375540358765437460055875364889771348470198434968710501734266206702562141855592822550522832642349973159877124195279908051885138711878693085784767615197922098065059490011448775270929295162064372013717687292278382988733968726379278527329395019273471014638142299811689759193031750096693184550433545392589109594123957391788245234349770745577947445150409327646159381951756111832482505485555909217898279392615613111686797044802016163626251215749320052884058716261162927901814479502377031410826716266819699834970193602176291439515227208336433671815691886848837917651463537257108379191014770757765481682455399056950829967886817438523191571862501037723394803675632046305628376029668804993256650517278911944351127571790429570182653126011288473074757756618974474313761253813001371011677526444198141851266069697693311862393905588052160200845034472306340778646156472433171798412268922719973673061650855410415521565496076111975265609252828473458283284697096713794875760104053974598825550822703390978509320019043776792972985009020956137686153696059509853873502116771625570234984240900864375017176265491576994344352381713153093529493527502387450213434577873893581815274590566528591221570073017438849801188371158071779229593373087693427121560509750852835841532378111903583993465084159019701664749004809088383981513768313812996548443698693336352467404595989874126081578968894175833122313135286171027938142952368330929638688908966694024999829048816425178970043084566258929112020825532776191051625522480468789887778364821949557529741880412310924451432568484265429704193603442080212620566959672026123747434247163451839583245089225552668733886998177622171879028920676857757522480181010106951904544982221480748581017440016126109236207704335513294616133967827516053432078928089002831012157704707602522309311270153621009415191133412741798957980300086908693855492551646745232192238681271422576983331211515439388796132300506574578861183218739633071590736803497563383306286544933979163224388146838449885276873823336904108069041082353442826681112519300398262500428064257172214108942255451832691236091971260091178900800933908234885997040787099822195357745871893228653093408625834716258373044658251619540978982924432267920978351721194116377602325881653317505489323151981041378183496332857862865588215537324009918505567991619001318849663573870125520601334307809535449058548107142603168847253280352923195071537136801098992125554521715426323232140061546668833472541065767219290220696493888509660506545642312862008724160578929443052875209770580787831345417293752389659201944674592107753332289478839803829006604230880227132054453287706588576134696316196273834833573950487665184005330533772855656854685016451609427711526459688878614008158649486005864206832821707728925353915319428170722451057542409646371229424430365637803051514539405776173272771970784881531067107970558686883151815187919067593372083069495517149193812861113176228252951897002768432713770861799263241577912939544256667293478046177583715495398740937370927764303655144437288661044000121554692386713109419098334873439637619373648046118313400737684282659798711426179798185186222490722908627202602975153432470229975720019136006065573322577014291091966712257284533837624575611783823038789307490903704903394934160193946569601642703528053972230906665539264808009595349672110107028317782661917333914783832971548606024767175287243756572205055894993612905969681931571263104663885191656290563926625447526664567703206277251018893170908386309519563564051397115140155340132482059058021171830762972246673538535238322775133620670986302212105158880642880671728381399996706182892538321158901185930478009703276201755079977175071776645594084160482988743254008604812912320635908020000829250250094797613466564007591941797716113408716687277506824185294900933637455125441502535864421940636146673013261682374719864031081636875998517878679716943907645994087638580875603944329287349061642913613083999015492583901022507806548246159366750658793932785417080082185708756498903094765941050454803321727191015273140398302217140568404010794025727298568372434708134023617780943011320277556098962213283197491768593467161384632322672537742575427560621017752432182621918026509675440468826529555561571266533256398758006470260536363594386372500147659948610145922239236075544383962982223021385711776138048270485342517074852455051534972660102888427401628910580215179133752654484125853346902008909530357133795578975596693449485965663291938333071915049802932563004387134744907953872849528288674959253245464849003381681333426478589252583590036126228163966030680249597231854069496633502342944214957657946940980367775058357917022551571538035121609571327190840040558944573073224488375082470383237825276095548830017236075432996395176154614313614745094455491602617372339077209691371315034334298141319960145889426249330420751628461241307309902751338124775981161371470588308343428309256500671024180432170043402540154285412183775906264125703037363513333962626469414910629153202626423985193623443100276480220372825001497492129726685011581669730421303062752453109928815638781317474736427309703726611304642677668151970134108206731363699924242342276780327104805612357826571387349099155304683273086291541837518095677842042975130265616946348557386811546237233151850110814308096479379760506000099150565812949461840771941240652656219510789363643249150297231711687701845221962445436529372803963595133672625192450634069850752227540781510609248744506960740245496347579318755468994377473619287218865297781129524408959409987087650831552879409525635772723389333929683683536385202078864151666031903605250232149467634915258916040207057150591584717877764229523477239539292798844792000002949550815990430810936928970674379433791000113927657535802004769734572989517435166665340455707233647089615932566159072871456575629787688523718776804343835840075427728354700882799219090166659680948769152291928828292771743084385295323678426589833431805452475295404498506949749700313962467231128947493388882621471248680105478270692202269319963748993623260338859005590698438630737631774186624885737813213893291800159675103590468757242177215995414649842770352909265692165440088667224651365706519260007886435444276068769905997956592747307671344409987160186446359096561289955883942190512167379548809793597431689001909261503866404975566470680899247844073706501621197898467702359455447439539737925516277064936020912778159675078181240972449120554842326017722790086065395610379425978511197493870853813986740385666448191748209162268211629528970508151552012843373314738541337543239460315890545663552575103739539103882433560858527247410853383295964079279999261425481454359777574535650135085517566929993404626210181002156835065182202976059155823615720472655967639489766870358039570521373978010336070080118876764933771918425086784161630245624451007499659485673204045672848214581658542729641266586275421293475632813447957256247501994903457471542922179708880577948944859883697210528927411479858638271975127069082575098905322318013460437846427767866021933636645399391143720800998076717591127124467983557495838836823117166022478047548805611352953099766050539149697164802611206396538316905020743378544970977786066555226778995815762099125757420382019675391660585145891130588855863418373330460001593517725749422532116468296228211362845803778623828603471604283804685929711251432996614548475802476692140890749795147070141945069721203811071783872573621753951741490059927950118750984364855757966621088592105233881710492852364343673881058303368692547277572201295501707950745943025564613174370806438645294861023543394614897047921538217581396342800892686737516304661651264155814128159301035451102511889684054971122591956968542414184254679705630196932167111166765553127095068017143195244677273661215328723849304387541884163028913293826585687642155342944303629367032212402892531485950233726938201418368155107711951521048978065461924224945871809211011837195255186255235144594298885578961401122088327900093870270081555520682159590894143593128143708132427094548242715292059481093124439313435866061070044782332905391480984758257666454160917984148490570008965969709287576793219341487856049376518254801724026192048298779814000667611988442040415637235054746729856249143564665019199153725084872955424079090603187246616152111961616401660959361260982615788063622555813284566671215476829791556977571506070497581254848383896013084063480674514528238708489762535961727747564569672551979508539697963007632625453989232405374461718797309296283639184312385041629479989748121180221002172185354150701933954196531794007292458056651375109898153223834683139105922932431177257067715089350945150596566842362865894493978104008654238962235352260611894739634855458687397927895532192962017127286525965735873084702744673056170239971393088642164694346270049506210770164424853619450155378083802940150490900873781879660035672659223237454998371665101837869568959473066871564320707224916840125715943980672476212278068852555990618526336195217736750636496667792581478918156036030882371672186588563986094983928849121293519256074466578922237176977616111895675778826497734657715744981854288399093685502871773743707203692826294850669804455528488989806648427828243124911358344516404867231928530401775146021281166809377888356347370032404128427690113837573414482977142287621660681435148077762254367216700593071046686029089894545308445747191519172131405328925374708300213641937969336450166766873533188178201698731896341570592590504653063243814807032916111724542048111784258350326553930653619709962792081728816840565903820879871366282669758909319967778826735198454822409681788433756276744701499507475031622040193152873257762955495544736140216355492894717111813090743987093828773117621565100440364212767340332694977042130126956896763113854868576888568750389898836176791426252824947315007607154768192878212301609937332670689385791352035962337851511760451565546227756248570670314110354783741813763335451672055393786200358543506949954054055987530962751228820014966677439953431648604783344641858246805077031019422471822966970294892383771820874146826942568660732963392451827110299164861865502270909234384169279219825932881608452812632988292476060218224036534585616584934407335006829801999849959241235794837323229106412235605033463623872413796538131592103167115575349459556601366620473358859210493636612827087261700084263884502545849711129953775604204287884873173942476191674904962618421895486633557973187028868350288296963952883682166289347096141720782013254785503686870240547355293412321153293519530429190723274932826412806933391194160139895899090233110476048450215108217548960594920640310471938929157679330770348786792007150022192608185746630466215598972441177373800435074086856728396725135229441443932366055721714160941155496056033093865030200890944224526700073307806877993913831550695729293119813439587876064830040032350242152464817800376677735110224325697184018407458771159926978474032237011669391053048906345198342679402250020867538410215246686428203152244373823987287304411306639915280728548235186804205450695677643023559117464184135966177248396866394052674980504351995564156928176803013067686061273017377072988826622148170793955248707838270542947429471432698412478326789151821324680983934418040951183103545304719204691310893539813301197334562009084217171656799586329810135958001023474461532338802918867778343682982919833595571218401132167526352976882944716494572791954885263355303080947480976181931745144830754080854479324243768252577865470921110155306709429926667496234736333667665607314915461533586225863579558606621430184895280178732639330312787592100961355138890769588352203955726816975087729021497713031186417125385740877792715316418718712398571513401160420914754597679534852428335766792484727033725126693906469461102056683725955048734135969199527867021669719664359548986371270683471141679617701187455077039625135979369867669179098856373390457673271701744045544756149323193523729879694907027049086971880729991047877966016988720083750138551700494174885407517670447105527655198052737322834802959385082470639876761729292023995058426415096707456374659404838999160476258328356772983408164596126117629900332691173538752022438680270558006195255158998602736039851320114734292730760637489782026222938533072023123747325394507260867308560634823300992843241038825960762507140528424174766423584770382477306645057973898860425416540872161932780562378547378633864198513829080689719933318369217557559565381728871741064880252311349803557277995570341699207578533378634434030641163073360594377486710313634588796953301381307921699552384584537821654599172769798774957641531271525022853121281628905323463305788226636302290421397027684984975843114914277571133516633391333026147369234967478953739099835682861185492672805303514589680887777322356976262459517496268447357188057762799405607613836442675713434154329498941970734194157460293276783234362105881377480116207940237387101520249554966884705161936813818493239424240858505779100471443053268095857278353697521689264560065888848934257928456451454277673568520643783546989697030366673011268553731460370290862862424432030911145715871501186427703725827941395915782006272796413829367449088955048327670135769485826602707874071320729194625598553404806653654296264186959037991312785193969151066453724042671095252664629508051950312257232273209595127284696873353475765510001450409177938684028373113271734860165788564779225627424579690041593280068660802913791187927020789730937634897439469664024736333510699928859990103853208334583885630470645509585493400433805742016196760665037006342279304602359604873922298210767887777450471503158624871006412357952744487931422188424422021785875678374698491798677550046757710788041920634976610681765117673155690716596302730521798541000836409922287844043075522218250300288946815731991957336797811967791982324216159764831455291490057028329422187677897987236401626456783666934618275391613274848357993833414955016088245723294424507758372074683251600578263639669765658908539719952068344099533348152185393262794571406003700018870287651442519506779847854717302739972022691825158007843191727882855548964339910148657783842090989856780181262983125603702371609519899868440229614850181585672144941528709623234107909037739879308283595648065041434729835700249938249456577407169945721305782817713582108245774005556655513318568669690382777668750315800849623398687604533095210715725368521019480702637854890130945411605347937413486460591501486170678987644222876705587354052290988085076899930305800225834706603304573197830376921519204906271975293470694664262892417736234878979066879984799131674074707525939961116658792091131732214701674424231848208928200927709560643379639627503675851890810562278858009785689555377101958589554827445972257391746069319015232334591402075405639602075450776488022411921537994013108203110762136070585219855368838225245326822380038589636987751619657318428481456129847972398178232669957933054321085415490502101006445294030171685610145317314965294309047727603172201435177695765736658550080975450091210018804961845848086017953754314077963595001496171617084507553318944919522946943931352792984509712878963730189117061503761054343820693358872126522781703190259893704566630188605859571040327755155407960300005485373616863184726344589266336892764999629717351510451703188577751070962730820924451868735927567543633176264986832628806122050286680187930572011807492809091516185144716564962556482874482889347641673597347107183752173315980082011353674117666572269554071186360972335805590196306244758296063818391514742608006318216158949820518796583644434639014631962040186625983969414736514808864235196493866023297018880930589683156895377114809314575858363944108098881063751115623713134458278975152488477150865544735334134983632345453601490743833591285412819125197158846380725236772376267218925137233426652912506893741882310586419060197395751499054788931286093306406322853304251824426517317877439852109635171412231467823795250124116749927279326852169077861107796961836927858232770500766112589980603813221830813256731567432649816838600559843423324701210198031853661917426035586015281048776528748653107096667882953153658702830457427872219651699164789227171683731670791480830152224223791148787449533507079035483576457268209133278038730139417988963632395329913236227861731784075491257476689205571724801917203054876581409409512357715709119387827359852243537229735204662294171530755303674130671019902333359465897914961927456939788672026569584533862761364181505777271049322558359804905706496845049396121343984440805494016671384787004593834095843172257108098169942388057757971783147564827172372126683516811137966415526399086505219031162652039451582971975441999384774220021810631247507100879316356436539078893048610485382996886774185718847832324046914561589429533855261524835541847260335227075778121496152473395169908034611613542973195395035667273934646635792679765089681549935253997888216594552363506054156221597928145376876905977318210821118925281139886435476529907855518753769937578315942039053254124813519863996481208025323692650969356120225305394365499810238126944506917284810516778578251736217920051816176706874308879624678649021381862765272177856281575157073925632974474095909049192349174228974979163498597017590703623734567940710877168892206619424998007252987067213155508074317268029579493972472782859281434004106891624203261770641671376441655109881197028835676734494503525470297605516267413138392538755570424684807441925436630916924357051742674203475995447146450333736563410865230320166690139169843034550447621490673789981679933907097095181696480556312294752054012206475664476323194821737389395918304705622884787586552996718961734672153107368084330157830610101355412340682464381942653742280732804371944164297462809892885082166532023925946310635365737661240263105433104438287739140717180686343674181790848270263418566350040293618542196353961048897501556355198621576677046057098163253491778141967830184354747592580810178143518464767517853060611385277218748916619591694679440053188531348338648018330495025828846003081761755227851107431433149125392437351150280908151172254164082325748794602919619180211587271468890876675638148094438473079761977780903102264851951505124411723177163707008935156083711252713782725404335168370256085639219496745786946995160086215091384254997285159295847652447157373828394928788937032404830870195782063878626661556639897460028436697016668175808120898835557335098724769173294370025176933638245172599846760890247050620941663346120339713863851449969490506484227545115123487272820154471818959238355920839061115638113907435432545389180188586875467518716458588653130283323567240673231546316981137578418521268115020073380120362205676407227807870808480250518681379397220537002336989863801285725192658063854179118020328279367488502767303076140262845776600736764376766382788032658627115985384119527101298231895027873434033142952396537468348663424445129452413621469741340438758234035430963461225988939270122004463575142875911860250917500825089099313833340511245427551374232034388090805729783162540859499636487213326192132894498230711417742651607544774152523581278939135811656340098188770913974510195489341068846080190312802803869680804711019726728577284313966874332581583778741421716365547085392247429544018791367765125525309982298893834376196998050453172355895859684729582361004947230810339955588185175566755531677850156488240233246948714022325608200202625906700817563757506910438289789050660043374372378512264556536357786287988312976241348369725567930555988392039320018083142272206489018311752260043199253083757537098014399955979248846788596880815267642020185791703513794629023106556380978943183371604220317688628332760423937931243644538629434057659359378706082947946026028712522748362314602764991548729400952820131434240567439288253576624266076873975889686417844622272542908685729328415950182423264020508958426947095443337976086700496692898094040539843661321110936062014074929858377562455742402809875619108451566952999127133011031085396149575927084183152853321857752925288759097588760758646385803003260664402477251297897089345125233719621670222825600298995492382774055497733306301369816233526260909202296141228864947771395677381693211702940628806438186847121871945387282207766313537012258451598057779281464026474413628724673866391407232642918741232565513955613135581837370514864149312257094716639716079080002331569490883631218729022829200730957324793602324663319802952973755401274051388685659921595441245760452161470373609882265746646559461458385826109734531913965734327675465342654123108948440596776525125118143823395662068466278543501681504135005199951132510069134247664311322438322861957379894156194794539270835176344048018607798567097285214012611902853570312698003824920338351000580732303899786788021657978317100316632805715302019182103333387863890472925233657298418748440781277684784798192907872764443786176921763394201551803511751160979956511129882367099338254357797798825531334028593577471319724021672604181615338850887127090202339134275243047862905195035214526848573850642087252276847618704299287848704775821602157844043862519696592860342756604822099186337207006770341893356986270462223174396354315707638091135024255579340242270560800029915619941011606340379302145526677502481979746053333862484108647117808365362120327615084851066278159151407823146796444481996074318953298083571510217366066843960880351624088160495705262135415722114782152638864185159449919358355787750255641488505827077279956069418153420692407828947115554341057764457285312357153923593297495942627627620274795772736893228008887928853665082217997446662133193720858081749225627707672097373944967998765120761283494310999583182367111854717666389790330845085655534403782444457127232711356209385516000654731112728871212952796523113893222689603171342027249047095371668221819309361456429527715954327831590139770308395930939253677090735627165707983678181945589839059738743286762546292362776913877105956740704351525711840487357181847225193537759959613711685634012762258766088183986497581278304567456509068009680333854379864485150816740853194425710028780409125075035355393566770269556725321405739615487667870832136083978389533536155928755004712035160247717282031998673433688644091630823659892013653483296741521777541410096223616104052270275059612924051263278595520344883132519669379799479762645981713293499645554766829898269992719932838020047671586046029687889793839801458956934902035966765206633635985727335069458621498514481600615885239427361055601853351848834430660071505348649257734160617394586241545130645646939540759601860055874054578919878085015153690973230597045501353299298741316234826412866906223779659583719602095165129771138316370764176210144817974421557925524097504076596784276522017082565107146474781167133409770229910145184167768678646414329439948372869405130888528414764973112792435432089746544478417311274496469354314928752780110643873627645332295275410802711332718681492101172117707219478934122293086528769032746586440911988254127985135892189070972014059867578274820470314331041053237710347337107494902553751794754590220585647598313101155118662596133587462778261060378055683085142631440808762164579340119096415069846672847524468009421029118208700018506892238557855529195716650677329405080481524792526697110251333236985491575120589404530558562830415018265134339683659639348711325629573485181949402326487058721627332361431169468435764659437095861686682879792690289359118300447788236129672474149467570873620657656460290163058935239643733145274928953601722480877819850321080749260088810762318465723805800398017482990985064752540595137643514129875350493920982971252568243937939490226753111015429908055369224336376015781337548085399383636261593711858627563127190722097722019572533629168938821237193900391576604615684271840828922613734552896807276087686400390635788836976801676052862762827664447379245637993627310316391982461633501115259055317288629087629594008474707658824206874481215312088467116507032353081792615819708450226476154472655940160235786789415054385915941278356349907300875140418035075877658864685532597869252918256867776656548330764296537484591305528652660444634483342481574260575850261823723765767536655190811451379751301815336300781107599379190013173759994491535394481506765024113942735034723325116965776586503863991612434370172710223262235504478282416202735752596766640079693402670156038577582814268004840240767560548736802878462293231182996127850935347030431968195182768051844631293226912935009002836593518249034190591199657175582418461051242203361601726710173411375397609079397513374902828181727960346454528366149745401958642276019579825244553549496115237239699567183101651711313114526671972192586621853152301976133914871604320939355876028211097156090556976385324173076245037126473135300900126448720802937550341605311527594207091649152399273029192975801108907627645399956624345493600702208316957741280546885801845420366050880763781984381782453184058270576272534835614690858615775830133157844706261099955625282734376277362782886070787848352365612800419977838870621463751948338368329106040306628092593289731549139877151685900455699165994649997125903552983622944454090304636563887001416498690859202870037914921381297697407458000569719696220803306842914769008520210930826020216948541239217183276078198104336789641400620880694947242396942820444437098349130891586562930489632574729648206692855056464752541712691426732180215937459946440775118194658864582183301067642005915091094786101539107149026458649950780582132562525692702991629407693302269552483449171841937225775655087774645334448233334298420860951665988131309570383146825559483301555477443630838805605555027522929466984759773249339969202376570011631048445186559310130040799973154109827006520482111260666285086936307458615789023007575751741691374373126993297449389104163573564529173761662978381124658153871140025415139415504502606860029231228064724408461252793389343226025613219534495887970573438127566638522433287757816305118125784602817823770157903612387042859638358409548710400333425353549921498391081345335697792502870895910421084034593781831456050160891193429805660594661544156076259427814145920976068860468331532502650190770549208488029243305698755734843282794903383196472043000054581058163005467483522638878626893403227386825653703477783951271018587458175855030702098388663922342214174647703943248461714089770388666355485117962065540601453443698226082910052118679120318800060753726598792765687625477194535243811671738855178255143600699580766957096805429921755120110021943349091634579353303607721736556888067436058425720228840727328933773937416417526686264928123748077077082204191117365435706210652642228789257891470331160954914305663293039440903537260464004365147916186290069198116599247181706399161201623044099257867454605607292780367641744617112818057298976037318394599527316153094672449121005958289324563755389426225537969969603036306485778074244814236647952243331561428013737517478077760024791555406500579353469120331678783648708084434068380014826731841904731345045341469277371356701521774717650336995552661759743469103099912167807688738776980253159603302628508641443050842118619996410659486760642779354040715697080433360428357213506100967367777422285396692092575124866357797635816152920915327059624375818792865996964160365914182127242395290921433813560686500836810590525449178294799014139503486890341610668082647720636174208147776628465193537658730152549687043038795293168582264753543589391586262744352333261149689159919580759014757833177420473424931240210442872018394469872904631404896026431590681513511392096651111930434926906735402911179269198763337778627168489439697362068659334923113921777956102733440452540894267654058194362672536928937668363599656808379928641889659026051062155932866023906163286737576921048133278985783952071670247289359200292988159772130444635277479360419939718358895252049253089628483963646793510124387432898814936947114695427033230149083937377541301544319187058807699032551628513153786774802815578580256240991707976041750111626694692189939900935784326373404900717100163597602568315004888747982186223915306993421319862643260410907078326783979612889938176135945696770626813459701298314332076410500653266624692784094273805606757322527132891051706196728044956265615311357980606183938518792476153783530921906758682974566117023655143382002847146117715634392883124461668934166177779846362250342613264852817253151077160518728710161429543653544066411897141708717723137912174484499830222090709054556156651226860171948446586750970597338854559691688223792224692870325980140813111617685592926182866748645654281458099758486858284552293369157169973237052370961731019224063753261686397577766442871845187313812711785353898081133745853455300940190886814271713667866921764485371483517352537119930083978790125361485165729087444490581695770865535670087666644842471749470762613976612347333824813474051502810853682235263630507142414986327083016963913050503128978147322095289832280617927647358664164292169711472747535640173007724862480981046286064516713054112403027885598444133763867338995614515207579970076146806024366639309168810090808274007832643331759144129299868191236505385098177063342775189920874133563722840213266982114475956907379604503806212975746102206106173082965541235920280949275153047590146713178765657871700051042905117646353902155896921834360050743188979762970178718182451425172415271275778322465333615779174473759804263105431181896924674795044689399969918122851386720796954193450065506275526119143866832621133072474422767411736881325066706748051594439616622944603679887167984088413573133594793331201467093026938608363641031902762398012885605242276978529449629999182830233654511798008201040320288666273975227347675362580674089973565043097373016496156344307493881668961936078899444092296685479115077646219466189368918237542404862134357207433893990255375306812467848782197622397061085761387360923875695041381629338129426973419426692940756132946275792403856666291577081610333914162086856425922584984988135341497738435134069172777788349927668828895148426637244133429529397123728986361213326928445718457679209208325345387042317808441122824121191443417262162114280009337604076435320714504569548397829243676075255848701579765906978300345387328164484602966558066395586837867613978467290496555805825983173880167657371485681662383947658512728598793776215869347771284409875868788554811516702302689415407139345104819151204681923282419638266535055403877599088531250350060083080693147441026459039206411348416628053220737273775821536241676108242412943323500180419717370171068564478302069054568372846598600665368756820822646352038446060311683026164225426574994245569439633546241621163342103905714570146041313086353725629137274238325641959438905373205693840716475927531088919165777778350870681241443100919286181638147467347534580664622752737507391921308410972773678631848471379672003252960475932466930653581166378255707950103265326660100296685918281134488060762833263251989240175580425702618285136858438656215108801824902993037758943667551592579212360534452023687158866210376217238543040448006685762209404910285244743609859033439464896499601563016267497023464683370355236318541454577007539776033326978243282644370300059239901019227654939724652186580362649890627432603831345260401685366068041631525418239923691710657581481042612772258275256088956039201265410996355726625207405085082504382330096065339164221224014576637054910145213166193779882448419740385141901164483696162172426818842457544475257604500662792633421629307460816827900623907770236608170042893740202709838750958154932526221510599197189440773842120822353295106879716521633225936286603616139138377585538238616713198924016646907064559348263965738242240810475305225137138967405363751834218882178507679769179602902651455717809266817440107073399446392194201695989077648754620346924225442718843282585539352518386219621567189143036758139242693029392781435032385082745700167920195941740416749792336469552222803631091035143570718991262109707708981824640581111238725842206239277966415541126503191316231650647366044337506018238608533831352596231206216835437204620907039717423369467334616968631015874602281076477136850540178389003118202729913123322896951692490588292189451401342279067794727844211438303361695783769220767367874905726401662281391955575108352583340996098554997741124798664036314996738966850240997624282129032127421605471629630725238809931449055774702641552401698679743340807039765732557367699270935287167075445615095305817087585319589822105645994467730075900130652144510659663551155950686231771263188204017484705315596185058100205247518707129286997713952676155335060706747500183658663998560201928303228932654485650914570125904893453512557530181866580542702525311622720611713994715730403257443249779616587809756110726467827433004409698279038317742284880116351759295707272936795263677166955306655378548282014631320630336498638156997439705261236833797543874999296940081758157165411822283230724631828040883082980406202359529104713666907100006517936094700169383747257655426522037014009787557426621332870220436521310675504146034065725967795121894980244851590124680608293364629132433854391759114456205560627571363255868251221990036948193403370431782363961878647002096543883787519157822217242581867516734979504107749769203693472749924778614432696153750441809375506184003387768414447030879787601825785155311350002306472828977857580177091967941184222503030053310648918771870113683652649784991825742698903708456653493330167717184417693605948300152777259065322615105273802943960281502996523977227706938387407473982260826226364137780709015994661907561812300725776618380594815059057181768306580864075901583554135568566166768056715436638589323698217509255176577962424823666930966311281479876607199938280631097915347836451354486283921949919772988253208075997635003008912075064465809314577548367017793680089670862929234804991399761133829777274458460009533223648168725934139966007594645012857713363468871739866338318326616824026118560460632771565935855667935460241972789338380440594735703941602464485073152744869210999557158664883441338491222387153369035194195094066499964347151771232690608725934050871279651023582385194780612200091945893771587638320605633942851509166585482795612040336769236094762246289267027911592793718289445573453619905943254337753397298213676403967273279178717234127795011241823779392943640282933584068929052870558673797938256142812661816315389959472745193594653176488353376654412259766023190142188667414639256768496881057746359668593015964675725534300548025036250671287009327078558253760314096705098680275686822766302278139332629449912867460748424242351028918279457151788820513613845066063808543579587631937718252636380609737599782359416541117094211763177908554671109500812335539479805927846188037712471925796586566854194607872605244668756445697649263316870136304821568048065793025756977934444221420886922768292882732388109463481473666343838696310976272296984487072814932998162129802709566910012127716365308877041461553610725963556169301027328795799956966197962272850977509133453147381468956216665445223104432735338810165160888525587280711490354831786509417982428955380091038975381849273148619260272022555720256803104478366080389242316835693593046077310894782526671875545200543626002887467292571079956733017968046763515965619852344941134184535713201707236413828765072457276651010247798410109030173444863668293118951701450338937808106576104070714980365994847737588247792785604476607148292751506606667875458511432770129629236759763904275429659160296533535336185996341027660453515875283546585692791381061817154904780348477653719660767099613573536093871925043782236782090432354702235300204254533863354083148453150306306889121892001951388631859689309333639225752951052867259713887599963667253836080176490654371094691261408250194208120042965998047554769354972951044810680729983505233106034983089821339773362568930997141476943822886773864343510831480115947898479033808907819057085007940187990726697986895056018650363471948892370276784325355830882081066702539580509934713274387907838845029879280322547153255983516013016672113622291246967271916817777313765717181494559433745608874397775774884651742668328901197885345065686739184520834341272027907607325173317761151648422513953773671334870378554331712785977472125544228358093870683872096203029929841586805555607215064920947576760750786969879125615508324873781298790270589897526008370960086298080787143532550155536163752588911993924287171113879337536273592809132374390944238084727948855108375568775300558510003258319166746216165066145261279513262999797234369958985753710977801270022235241634147779108959583574347938299264662761205155901925567385927868741577943284066639739867680323908624899430251559249514237680683529718531484013135687885414844802419192501150845200757268593339477144881649394777322891907925675671520973717552194092033980497012732542033037791518133647112557281655373910180847486246390098333752609628645284637383063175567945656756980539005518689699546985282750761715543275280083058083356682053142469491624217750632688181587627262359364903659477059371034369928146896088094131438696503582583085538888523776770269699361766300266551880414983468237584873539797828275092524950583547530237891319793408550993112201045250346575152317729743672421603596669174251461523575499449472988122650031920462436902397659599090874500912936445537911645040224891039306660881591981310901732865753102228498409078605606757744866275625030870246106986511204260058328756609533505974614934365352185461627110995097220210917756876548649077127339616281457815695052416021574245367529176517010569008713049861242321815697192690785518136230347438483068397682881374895262305684637303813518640982424509862684897743344605388020090829258439252440196450877460860393711212180905486082337012582795762436572033886354212200285081023606926969136229737020251146237283765477599801563354000157892591416022673540263281072201800000418441245419540127948210537591802380479033376093173363168297627516219577992618038820786785606071519752627594732643855177539291267422282144426435236214377362977781735175849265104161894493499848221182721404707293083763993977427795815491141563704266497943828024878179717334559940965574737066294861946889820356225281837957241294342245536132771143591938760268170993412102749931756145698455666194444272146979148611356485464187817029996874272791105052339334790375282237618242309428779550442334248145545258611600206994075398544985832052590601033691761672621173865555700371351331397552170932639841652208363869109005529380753961103302274662703036560392962407779279715703507718098080386894512385831081815450800824836895115719766299582450281346055345473306238197926315788996358152764706713579080063631215583720545919045574071128327205585291640490027385373568691360367716786549217715268032878554121891929776669891268233713080816803229856605829568500922144341064477205028107758175321419950613404221448754961647954647160380945157557773522670951961839394342927640601434950634241541025968257418399844825451335496058155960294250526942242098425194059273809919110706488218650427023262407320770544211743324018804568921637147067750274935207727954227660140233251557763204759305323432731131785773147938789396709512913336286854642339031380674004230411211490732968807988866265242248068972587962053853584122346008988493749631876297918609394402461663551763958444746376159239511309747651798822128280055142175941138412163455497055412045173798609300701430303909975271675073551882996621826669484765943291051319209837649996909420294578845585435836216691375961591077711500155901754779644161905636959378319307231629082075280603698415753932382414939190569699551040585739014587912621489639484134477959209140311549668398931966966766449072613669928951407002316064037012415195021880522059335896519945721082400011718666307697100048602058786486224491947339465336416288407203169427656236367101885380887815788459445546894078971586534713007777293549319592515795886914548461975717230037360896724320668316463599780612060442196730841321956798678958603033564845752083822100085144472059503488454526329875859295267223236111416333640642422133432625746372373087902298952250027316235521156514073522928107968917188900276279337363825821042280202120176456436687989383183045282802236707526251838164413074833823791051580453504407769463773815667784980839926199842056155401253554288590948056334649710503485415576035783006247695094686339259122692142054950821006238788791908246977330570355237065514677655431181301807589090910220759234286353317098557283483802269835341079930945850470894554591703568666140402672716524038226549391257602860368256054028249487334706890868507243255926101083528160142138210452520423559270282777609098606848168445210035041192265647026291195297408169015144503304512784875363467124658757425620622355472693998513828489175503583042792367276051898387411576450510109084521960154041805886585400415309853340327697715590028954684522559829829946871007798728263726094817908345208780580709764436979283617440544624629291730310773473219488707297458043762535150246338355781026077393862946562334580413606833235956897285021316324933324507651093768979671969975714077167515647542799937949800863229959960936942307441990212738669489347650843718423647079741077968367940285773072715733391866946357582015893226883807534722924472751517509103172430035246870681838602523168342251118066346032678342000690515525573939385785771138372736127636931280197201469954886910114428420174485528398129052503394722223037437358812344294442168333882344267402244509646482337339114722324893932925778409186859230445110074400658614203027755705071097347848405651885235988637254684575610506074855065911863420801665672769887848546278119430256971656260985085030202599574773822045740955453100951925771311494583405375365988848772751068021936882076957584408815848726181668958133068580309253032476028994424149493629250846436686036633261393867625715801759070181493970183542694872018340954467578078471967025478737144577718104877279599661276126038764842866196200890997245260560450551864326814634511684426511576727002208459730569862545651424459508737438223939726944581746562910978378954871395050630951856780514719391775841807293959749848668063860422181046045924488913002715595885163263456742186767929666684269134909559232336090453471352163244122581843583949551747182163302808112492644587422605317353042454370851580496930031421044281066589804713554771017042354371194555521183041950881924892223314419775403709482724502036400069514795241595752399605160751293815323370711788976017213964736653737246255613877483533938256735413175090145390445971586623280800586371754644496205751049258765798343376683332413655839799636599620001102462887531718900874988536228948373562795100295248897063271021080316674639702096267204664658346982511561569452720297135296943238355419244703516330101377598881455051320408780893290803975660393425965128837246262736680266586488304918908563338175183288108409661403862970049934825473292342582433953390910973564672919417878261624916349372398238736681728320580355744286945710179790896265175837434386755147250576091222023874323188787854658606340998285003791927691560633505572748097787578586795246423221569654463399913699930097566566470761493954289002777080809466582057011188511992733617397355317684929302492337399866708850950259892663642767046389758451273706946438074280096408051348592256600593298416443828209947377159532267405411811954930692860161445765725623014469224516802798528556815445617828800843230529921304391901453094745492939186170990468383275409662052909028652325332985730145662863872535280366126593236272361671569135042513047856312263670280750964471405584864180965137007445605358881447127362695278920157664408578107379441753732731768682068342097788865617387773274277357924548414459863374434042992091634016990321403168164851027547489133154806979773185093859013344079266090333574738324100779686882629451982846729911036004581022299667744057544273538166659192830478728402804563865117021601687775612899537517055059915005671319545126295953361410598673423626728797334151536592804306785269857193930634013339398159805688457229076608214815894751841880055103010541120822603171251507609400029613242662839735140788336547279920576661951731967962106796032571984837919463926946542459396465703830747142884224800517238442494450051353240210294530339852105272110991609704388058379611796667414411371123893732957094205831366472813702466780146740478277234723564762288548153683067071404254954346606249230459875202921190897485999128130493612706815295252548172557479884799578213379474834920847588012513014948627365467984394659569523985142533791019631859430151456923926189074390486554109183402194096205885304063886120998797001769311216349863155342629912029482412082985766842235412316926558461114515150624203893295250693179760707987971690395503281385857094891953887941450510681741402199763182915074965088298337185135938329240133686428187515251907082075253903489405463478364396226777222205840478858544970054538122790100028709216665185677695790863945063303927128312276808084735411424055193210194331612683994421737234312842610703830018790298805166371637793943451798579761183487063542948391548401346800033022439605429446398249909203123912584035563469252083372954474966326793590323648755527962609147326667964740044003773653951402489960430116251083353409719516040596585264887476736407204569295539880762478098710400553436799579203200137682951119500475340794288804157496653823632001605054605020571226253307685816155133021731069725875979047075079481231210598660168860393117444004551611924697732519558955995265952705614581678610492064994893931396671512667233791349071085821795673379552271729277678749113975754676229416995216897729912665944935946884361332369184245749140866638901620472411281483138215544232765264443830910811646856375096834628999395041894965959865434976018298702890775048222264406674491547625611936415085696443621335105081822663830566081862492686534738276796660242169147051626899692508628006683833092535222875739168455564129777126917503282690215341017087354007044933474804942889413852199192320301138953621573143840501582543558545688456664236937244712756045005639980248974743856151365835911452070322564534175128761254337756298905309804113057068866371125536928921367544063480029569343571502426435959017934050576159598946567583775604983631185214766650516300724285679918811490412218964824069699122628330084917304811815848871992323293012565575501035252875331437985488730264331971526854144180409614165708663121354730714180325516179866350455571895233434035938603850208608298866784706195751482458741284069949115421167725155229551022963521569581303585076618123389673224072717711454834665862798052142804439106149122865850064725993638881614132879319764789907816569373313683998818447719514109235170702756022985335815706885245067785563710392178661964812934752581235328080671318317073391900026005395311707009399657374496003233270786469742801833834358285465375815776973691986161833459692248931091688619608853442102412550260438174791589164332289990386811799756517821343576553063103644820703627283548715468434363504982400709855876023307981814631595005307663306867184619114231694044930205523242384999086043070609394498432132133881037376011948779934574727130793840848166370498946397324726189945763509883048200806756622414667401892410978656125995712872256430443653596321480603636605101302454498488083638663182629111234402756592077978556069563381888182744120778004946910675103496151414034410419792803381932443760966168539512795930070296271231124461814089441066319043427899591001870074626674453630636089717723071998077982663265669951566158020366071455351814229728802987065463339307507312666155582556742964793946452062472441466417744616984432320792973204405380195507644098615989821064100958358776429363774625469609708007061930676288749250044529533435487091497716192254820700565730622829455575921030357544794467734514688771010635438853017097601918609343176559738443841775412205425380589224687983621362665226685495883701961563611894179844364243987269205006656371809590061238506795771689852394228413800374642515971170712664241484112763192583022666347678142677113081758106896465008102272831939109607049036292451350348498333229399721360701433002296912501721304876211867493300855075194178804735199571775630688763464015917108163319862563019682900210772903381037146881156390914925189124396777649080145663906366072403318191950743514211677274651493743230188369859800931853242391889164497823907494026694327997387214325616159077143003405156522070884641711104437789708952427159670087562236828926687131446822716506974995637361121922769610242368899096212049916768674174202526549391661361945795660998836024960895254737715260670750320132616159355679300973618033605961549403809132352916778933399156561081960438795506449906910501381089660345671864367138684406188042740974842050957327442470465505486885628406594971020621390995019939308928129613390446720773185998260125760421812074691902857757333768503809300051591950470967067904402271576537145321251782321450100592114239405264923448927666344319268140673450171493795569710219165407534602034690767486351010288586414578610488590616624225515945124703018207580988092167565135248909580356122199999084395907693619930282906981788140864926404315586079275534137473025073883944030941123921353794119772347518380546679029333926117713709465070295870366111564048057254956304333250264159790211223138783167583593160429550893806707556756280974935031163966521052164008229482447414473842067565051950624102292894808200546484447786124821829884672770758002320791494137210719216234684528472759204474088642774181620309328584075458292105904340210058613776469630422479333851742219379913717436689971187105158753248782936377534970407570762444870167950926919544817492041655780044071256538932040358302747251021062962301918344396214327229595779761210894807835851452016562400028169026354606566205567766945671227830731387093693575999542403155677387724403437196564750027863722186568680336857246003955017570860425775184053750989497748172050242100165128980808908291934543879613614353354112572684693293987409355156078989836834199009009190323894882577342569762133944883026564677481962076565352889256652449891285621587587646944816081241352511594431094535091108559342809705104147216228312201065764633796411010458966374504669964138725552043368805147779540441963526264741290349274904941894386892579834892584091112887380086783315010907861432950968584398340139112091219214321894688329114286557912113190699844164133401573936803625769563580916592301431841720088861066448970329538026543029595853079543419720744883027664183471280246207380707679364823451021301217029532167532088517135845553273825056052588097550334720444789950395576358102228641091122764194034597861753931368217929343515016960418517236665005522277996872143132652883042252322534288187361626415561151550536061417684267570844155314034296312669498920756663489501431945328399324995885752711503683339417450844522050240598875974827565771152718192614358874753770593562820036626367436969930253328382133252154585328999795656743614378504622106121134036977533820796678764746213963912574169136169226689634489856455566670134639269636019594083459713043754805586835508976597005514930584877031253378495821763410974826445955496650381337107740988594262106825529734638338835423842418196290561843715243204212298612203963574465887372611361651001747386025053399232288889057020902931724160486854788082902000712424039992176271869170322432545075224139087153297823527882759209361641997478082411513099790550749918085759867591106634116556153540005290576840892758519251232139085651618114894231271876639465953042449660415184880726566580228554140811025426847152327887109631409112171610013931882933277611338267955727602299465007475959830053047345942661916632287920435851552714802660929365884213461141397714272755280695095080682127017812139596053045133760917550345094320685724996417839284719708647960006523126836712710027335459550315744216996327312151875192030178667987149406068173859149913477221133514252558225158053067356500473376941229194531796642578402436431877438495576154578628532557481631131107861024011981830969281796436043214172135407773048743209085945005865887050270338753634307390481275551149581890367410764363096936301939950191598500543470605646836274302719514112383688776589817460168426514207079107698087306808844745830031689962353096420590489934640412468214451230802602684352307698159304998237167544722787695145923928649104049233389177071243708472644116023891872583950942211722464736505490447548681598350027394296449643026585433198380034528927170678762759174070310792395648467008107223752545826617198945826558223152727610726729919556293529018739495674515365224311807009232214378242621870214289567816444069778989995186919072213654285819900671253900341337581817411621431350093740265761532912177877063588619839568849825009067426577041726956528161732823592766493341385670816107661846055374773323745160763403644457491814988103035400037686599283033052280783046441157771204622995604320238124112422684392917734160920873048501463274181137735539299623995535547447129364815797570084426995558765109691863346677137809171561169390277999001539538249062628169952314536924146899703218252046895521924447148873013008434115427728882470311977073078548306378566815737038730413722173199776917615789792852813553878078527117641214933663934679580052848940728029772636626772633078039663022945726214542098399597950287453822419696904304364533568610922074279526244346442522480064809482134479648364463820010142400291632292024431400861394456633968350786068856080487216814182850297971483775009291932067035035044453633043867261899878669412404716390505048675907847273165570841671725708268261808848085899621948577571711451579862451287557978791522221411145375332543679561635689761125139687835591449888839386591300117848410335303635281224905984293279604286657059651272709789517073583411987765256486439752743246435652409755699275944530318675973235395835857456719263174671905517447995020782277065309767814576122495034963738571069154914650104756691324755232838892228358018775916958552650680320788559936075365153627309761436602667871257360928664940660154856705541200228765515178513758411939468999813247652088454487279415543186432806559170498615934969949544991557422602407760620736149670841169633211097478826564843842131940490322226230867574493251252501206097407381096508160777361270675679413718328706396753617501813032739272739233814128895140193945139814909004921707996532202703236033933958865099206559078113871002463708677694045105615034423979737556154081521972185848965372941949043191429920668662350121977393447446339675689324891160386647631018128483388899761643909497814067145534516359822045274893284587231366955853223474328958304567807047392644798478240586388205634461393273282228795854220235435959797047703384262551543418836252857923854144451110716240361628107508909567781493917120993742386423282377015593611577287100747545957709133887864647287186067728157818425274615271334347702560719718261221203172138673327655800464194908678613867987868684967823870357818251285574046254671057318226089120684251045349899942326709804376339005627473540955416721117142806018347198958009210475887747536414590115456399129563790609904633849385985250441794089417728233804967386566421999137748145601149186496755941523199376201228431110023534483621100395583252074173507305452936896067855092894118233451152990607772111121938741965441565678571738019854316712190159911743341560642108189905301548397277170433871093749762025868898967249337735972471954320626323329742558708061806480935304061463377765082608043876220745468450930939592669824264728222125527126069601043699441225731695999093024533162070770984646253733856667699386243234050904566716967021917022165450013565039359852559613171669283978318069211271854352514404227617164507014646981609666561728256183180236953194855193358674378896962076126246458253310580315594605952461364603374596563800168160671527587114152609237155301353000371152310025375162821312112536421429207663736150979063782899948535898369794225956406385425162673238500531106418688964964957037093453543658213602995496100795470712181107373236944690466200335938578201238951325507283933051031074360953396551349733269789975198084277961656724853149819931792301200313203358973767596002412639017052275288342733199605483250050243648898036270855177540837145889033148676577661708268665971957778254479652804924620082752036790305213958274128616592263678439574971508267559710869046665882284476057240951383746527524522934524872035452157684582253033034172970345994306048279454734564976611651893450899866658766627203567868398328923932554782498899834779275329347548514145131700381341724269548785186329438796181339832451950591300892850616309798271109707930720735618209547775351121815768058873638225092762778787200022645586361146441598439675115441604708056819533720049972043137569973822096315830382151485322090641037001997908691509726180355473706544534656652828668532722939203643205687543111670929279386929863270797873627938061460799032133646848299202241496681393909429258691553210904708659028901871539706253493993719853249123475178831296767967981704407131899716263401186109164297270442628891208020327382115878854462686020755753605772792339277767446011261153529893774176721463140034651420111261588442057320095500569965615065834297165672695484283194812635333374559765528159706503875156242404600633546050040362514902955050888658891842155194070466440322455171357707518063339293292763028673360778516548402956956651812233633040045505555827854140788577442951063361137580630949962040887935699155886384549009280127907521447116086742324788321042557166762910003521446011024634223499820424925560323111436178745180860943898578716979639178226963386334547251262313442043397124198019883272842231486196567271738703717421079260178886948443995309838763348874185015882735284690203240773197365133407133181987046765798816297500514310147177390524446735869472574209841359857752844023260180957404348334985689270203868475656438264738589612969530559806073470922675702034455391529107044054441498910023284592853507181808154939337736115636508332717646793107491781976926467446289894379072316516487574098188907247010757341540572112615693082389513487646784172026325518767763926838357211597337660514977449483776555015666739378548991978621951647788887873378096602066939050224943971565595479611553880350540580806657020160214427628115769175599572057449364225661977289283163183501427887355824700729998795241819129240232241435540836520651630303169372540569582745501621325893345844019544580561463996923887512125296314904568205978804860488007654632189962663640389392022917056304114832305651381695373995595543766299301606170697516517304093449003470159835237115278001735320330887315446155527138854938243978733646590219015778226151665213961756116296129147317852862729228373441942449946156614518763971542823622405729895546078466656971283917475160949155017222583112068063004126147355946998946959330316623004121866695115653278176755154395809777966496097939575522662977260952361805270932237135625415942527565839339414521241026316114400630802027329007406847728269726606650823203627030419423136899756223433224801828844816730873277829105008325438119990412664981086928340992053308071410886627724681217112047761530385374721178172826038888482949782271153051955001737208119342151934501540796945018940388629978486623413557501021073913839942991250253425051210290230421085565834878679182377791472981934352485232809719004203492207070081733382573426601262650430395783341990588111255300521599866350001709445772966085204851037933622638890549202243506593410542730975183860089439703030206891651807567300478650545066899619401006048904399750540036070147121970365841616096954023107903095414991158874419388772097474837526255370623938288014390734668761222517243045637905504181142020137868905713005200477726166940960433962011398372238053716101081240692047227578699509521603725229657476527688510157200666804310245326051912446131073160215006020919452905905943784372675960633889870438307993692830513904334585614564472826983120544245933511742199547591710979304990178069970651000871419166802574298149282365980401484932079762508209162896719643633248134676021482414752979634642921618669246776955896689192604289799289970095266179094352188004074743560163381744559703374111506393198876602309176557032556728643497320740651423027069313123207689755195909337366982621225526873116155420072790399703919362366915806126571231083260021046205650604444455459103858994944678666512931913319367609490323514053079760885266162842184068705605176878963768777497801476172456782452710489462969767137402147980796495159310149937834333809486895848863035433051099598384509527494527962761008505472379252484642391470096229432928931429982161715664297624095094927026761756016417606094029106263309451392186874756802944538940499968825989296105434167024151994041414590068740377770497226445532663374275327582595354980004326974351856459604987529553253642201639064120716293598770511542274474402467973635136705914550585988094120766585840209706801779670122749544093213949423521079908123362776827786985681114136893989785377968515466407960066735419934787204257700611758702677169247819147875862633686735924373485306974816368816194062547337935957627089842329260692729834238743055719398213292509627733251489695042798494665974572411672085459681977169848161929737122693422156920966402805534218795310321695832710426826085412300172891809610592805644475442613534540071767843079369943135735466089410641263569315544942174425733760336495866420427923344388635078979060788295173691929487244657366015691354395152869322149369428203427929968254430119137752876651580920309510111879429018349014050240747812787943405826386256907729924366202985967885659125507881511615335339368543654283685196405835391540723601203549969071134772051909578424838092753315202949065867491944752727997882788225477354144667335426960687113991170343590756019834185574030198206643201328600672181672276253807491511865049715319145303981181914807781513175205171010582650351123018453561364190023955514340277289699899012730702288447342404457932158109097766533977545914642939581939675978357650070474808222927418617623906370736582839995945990491139749415789035327736177844567760068112674487534008844741720202977185619957570224097460762294907695605374796330800321766818563411327749583376952777572919770584169618099996828546031231459176960514446151345743102410060095648658855099312766344971452432026019642435562677380706980206143218602505917629735088958256025966631129987711010516912002055905161183340233286692502781896722110375843632691397938617634373210297974115450426615674365990390683885932517093366944164467840066666886802464011190788943073151708049412007176405667531929873843772209640115661777886075134331925395090779542870815243570150753423638848043702659708385733671670777407171169423800240857945404401226038416592667992495396631826578817412959746659357462171918699335278682755766100588668823248346098338878524511420647620821064858885859126519612241293685200987276484673018045968460920663776693422044029522566150558132995009800376111878952063865578272043756772138169431818381449044944486598357575160781207805117493179127598819682115329594315631358174618557402181772932818723757487071312186312207880597435411043938477695268068105984334528537370126539792330475155524767711995362046726662287870695879696948413585120296807791352819928350889050667214904447753354687263467894584713397240034046441286954484669735674565127570323311982928205789883254353952424478328361840361826597783951776325645397531207435843838750413146608817849441619545287224076762881371128047306109809175275091798975756658890255568745512667866352521673893957597552367485685559769568118460446960923453440123477073983721385335947703855469190295228551242339226485765372011397807315078046032929912968884358896392783319775035671908431954566006778553599769177222152972412350423236545335768613901166020387267416814223738427826405998847136198127648133885460340576093526413096022784418156127813444613416714193032328103928829576926986114026070111789622975945277337786105781235362236194836609611066934200237549932123325027535770937832429925737199308277186568080280254431773760361791306507557234624204398764739405410403419588932965264253547238675768860892602528306635810291476523331299003636689067038032397361167428867920227566099219807180449454996192010461830168088297457807117673169001209759217801405437344715826910083105496948683781385709435238659344717037857438692471975620045244521157000097413022788636020151034575186151731501710843416114272538181633662907214261085971500493863787126680162215404779588580626646515666357800671024437403673628672762201868165681324867475185756343843325276579555482718720273784118242817609851643495153859170674231740438740384658395984733503724354354471279948937593662818982951265344163136054380273902494230825947191381181109571025662871121985493071110591325856305401118698745472208448811463768217197141012594972681624186215950569266456442700990879703422226909179524445052885217881313948526909793414221341894235919055748214357959272867706609029249538147477878045618455530213421539114309713539583571698764944013672448129702867472007922888373142001564526743596038705850123962110978484618163867099497133275029952852371492629209258414999766875773856760669036760410345303067930650280915290120839488483829109506574082516300111944381235629139032717059222903742323499637460525342407681294785964019985072931218667519812889073880086215212100397437852513313603932623656012401670529952942128808266012422903150565988636201803332162869840622156709424031973663572042215152972501244954319614405872663527874858205565843636395902588752180964872093341906572086334540036988986080599002457112544077539114151101702918146188872572536245735405302515814401076359817890093956335637962705662343992095653732342397309643079090206572130763745873581646761586225216165859144080870364298938162598052061409168283737656370086873421086487007124184334979978920802266267657924729746806601588122658767412865831551059778299053176606963696862508010632907446692386557107579955762662278231949389772785251769797912173717336135950481863734274748714017930202963290738630609591720994578914322021706665452759566299246025310834947351829570164792242942210335925511657396907938628746815582153055433376406488855235510261907438296128513567098137543436009730765159805059451345980243491334469078126372296571557587984298539844856833101668469273783156306883203747188700915296474028630471253147362507410001733723512428266250379740573762992192032028664350223627086986265210938865526836325441447154491454393050987201644168598726903194023910760350001334251636082402509586801850720755077645415751454957728347617224718381297506489503595934495282406628289838912930427257512217728322313327421301932831349533927290687549317204619102004493779374335214101063719754168499573746195050297567910644661467478845443440108410183043897196488087278411768310926248712916044813487278493557646183288769575863383510376367588387795224028298662094354565872120917146788554016798352278154874887560299479849535427476682015971120102129664886392141841222060404879591302403190385651814048957384290936174439620962581531550477735128226379254786468014868340270888101902995121133295199538170026168000317491941901620267880035015791065392858093615603396679256141642106767234976452770996678786380884459407392211601764295263190302005918836637133718332626389848306874939621151028508786605121272037167400107902932449189088343442069086272475603842264272112100821801587254758108806888163484329777324253546128524549391819544293584332549780877037034549471343630058918376808246495824378487219050043056243767182002817176060051850564265748888845091529891702494173927636710518202090860830500328548436234648575353785609746378907256483363079820884381607642379170934841541483585085996052927690234063103329423515257868328982302167709982715187778997238682191893031326966396330933521535488267686860660984977285027291855954174137612766020858265445245585029019451011875054044621715634391290248571733685497597418674470782548045830610821245675178306235609918367369027829846567176386396581085307668113635664462517226041375238275240346297537660895875674362828564963276870554964015056620790573399280362393899469626940827585376262650395983772091032326510935210347574783701236151747029000652677312671796289178388946727101191460784090074474846520375404344265569714637328376194187063806789775778942088213150494802258004603029179864655885677362427358955971335603634384223034891375512975913847927396438933923008488280005989477661572813494779906480827491982896012610406565773405641134803481710934925016509074532927078446509786889570312464494824500381168238311368404739643106789898656893819036482465050612790511804984074659185323341131007765898089136707757859398068856760331268538707550816056271174068565150357528219574160958862800553636009279502288476499899249948178466200700278938582784053482122059288509505930167132288238383144471835532820236380691053204174082594934780160154297800220157211107424201491343375669569776671488594204280264183117504747711704655992791963516345986448523474696586643860798032586502375922410601580096367209680286501599199518102018997366097420137557775906405870090991650998333524007500771832404150962500311796543291620747434829954831470031280720031951086932332439056954331776163213262840621028838578315646840496617740587889208563198242544457117402199991077667261007080991129568839645975981906135510831307167370459374650908048217556916842651919426741807787006426738290305827920955948601146687943252316113931395701955326725927543683490627021762478339813283671362762143217265994179706804877963793826361735314602542680376897246211862410001959637587470006904906611651147688609204651108961352050358431526013374553864071300552053115248375352436127504798801425924604461782093591065343326396673763900681249345941843200659951776299766196661836041225539724214157751304173333030215986719552129722786331221359871737612099079393118619293203868318446174099621688574998136232622223893539169347275430169524083002007021511926974582608178844938108459466882532843813802902280001068051252787665913862432933669713002146119676297694641934711505619732320209267235580733488289226054550288546093058359399653364336686645722296601693319068716544324206429942110246713209727141358881072165079159487480108587789085282291747023156628659883731490092977458607871519291102268875673087168040137377404427058556562619053411518716681952788893782790621009405426722632064573787912317463348801348024057239217400700776481215669219760069211150140338524845617604412801834002434715838178089809880515331881640788446869947807689158555317678566059007242057659938662887823122247193190748904509682267177092878011096492798245662004227753573303073487773367582454743982109143612108676873629217007736519543839622024809478865012226600240787228576453836764930295209074489558622993724954740305697531350264803536001392415031301516515738174959910809557061252242702259530310501230562239213970178487989554334233582645246678365033826946525479189751785889739138491940840970337668544633347088047811850160417764272319012094735263494785487309210891561188463536321142718136887960963267074495260448643564603062229193637383272917997812103160309038217594060998149340711632092411015005957612106105679785935568237681379613319815344265735295826046290160667004841714568905421101554198959104031528611045378441706248896311701111456431173251332959457350762609230635508980219574085461736625092552412470390080325183802097227507921072125899645887980959829079174656543602422140893938271503931476685581445201483428997741156392091976192797878410995014696748051617982866803472685389876664062290557194363749971325968855072609745261188192418730833552213385975137846676671486370150123287209421010806046928044434600095889904011138794338437005777548518329582369910786476813952424701214220352085560409074780168556221647052914724017190320756190006208563383654238270125768818580392489539795893111985380174512602567096178032665467435735238262339975179354837907594056003056734533218360593280052274208303413136596567645450800874125910422650566646370053521280188741192823204287154456365661817697009076650922147509020944214962986817093232656531669260234300221185718012633025084848972974286851459291855791609399053793129086419386856629245287086192683878533574183242851467437234093757096025528869461905048854280273898917255059127422917243382591389475219269705333525581711285239662367522561412779057723220159344404505656679346463217480924527043842613591067858520795594593089574479517920128419451759507606553560595631831181227870929215207068308486274377565041115384904066563099755915635046358918237422931938706343704566043527938916873183037542114799273859488417266326627650433475402483846920389209435115024955799141206429722284141522231535928616773370583898853052437611511548879285047986569872647476213244321519248318256051711029303507563113427574364341284011786956512016181222635669061290381830175833811688591629410931991724913108019102519488359567437775689481611375492005536538976339787046976564768379083640366297896510248183529199669351391655293758694052049263434595169050876030227877891099350821999222172298380840679454428515209204966294240713877498782280523989804169958904316802999747140974492440561798484250626497780371098134982081190357230353622701742870702310036395498488643325522657882430320963366954697293176909716011405937742915388539708772158738738387858132468517535006907107644621390351846503804922594626008928115844361985487548439277931323113987395712119783323692208541451472125861495316712956908952973103098854103670133688846337344899558211601379919074543296839158300194654738848880916121035892872342410664613980140109994570740848542785102577738590241392587914828725771675426523942488306415998746963210254951124174951303934854782012548654536948595413636344343593371237846892940379713124978381252344751260840676921517498164453906965403921655104756923070374976283899326288969029471657732896495637281952241522882015506899326740259163875330215870886795803926271323092941968236171249429698563202727703372502412887739176435258661202868266529503409794623416185993087944541943003326550878573869685890082924760822553063583662619283059890443358293277246020212680238300751635723107953174390465987827886078136596204640376879905940290729875201207347508694245643686744864417480733652044437700577970024290386871812506325942513244432578187927392354530195597527797020225124420782593937439413377249566114280925601974997698084120914722794251553692018317274408883644424618347735301372565170753177628172109967210941586087525127821715835372317413687264660382393395277063966236292775158935079197116565523822942816964343504615924834883838954105805425916526614326102640013649989142597262375701890007679824028820566312778769984528329316072721737265443890318580052618763412459340315523458543898646568907433229849684124691131474210358477128830941383898057074037251653660089600631514799442229392491749619045365723530764259132373524572068829462436621516825692378274392375938708499333862349382766102579603716869056311183376682386522696705893474668086208787843101182728021156633368338222701773895899937542800463702750039258061693583202276249563717359605324308113956756508602773740472568412798083529626957725768310275093523720077081190482540105882142570534320524169977707737938145967201868988083911792837096661996009739679181112497046875035891109579982656534854651668860074684241885662617899736030717902879587493564487254613181480433515731039560793578853787356947963135786978448696603067796150682054057542076242496041298674068729532042988454657314866449946219324777695676160805834777277189514500124981208979211612848567003239313190918110474857608445208707564359208271372661433822455751448838910239650914091686399879853380942420697645312623441814987185638393347769545929760086012502472344449519998892721075964247003082416773920083718612106781722884288251180332374325010801796210727312785347808276506180805107999418786182949707122267262464710829069125406920859383962869388460693484844739617689086436063714174124873882649870736053982070003487202994090972652495234473403360819924227293263896200512521493680522432129059271365878887841816048549915675719286577561479930173334987985401833998841714405269091300944147580528843408161567844341962329400731273750244530182591915675044839663827957752000416013701053880346270045557260810864247571552926680994796523126879186403166082425324913673762231154718474451359951800948899657469755395918475423245173730969669195974843286083148830319068937439071495928571825445449127934566520550006809948147076993663558966863603859081276634476101683157511875154956870047686414145118465439680392192752944424450179861828108343908708880452227073428426942404206060619439773655563618375799661045861757785481910750396383508150081137134632106438577384848303577339631206852330084785696978913878846339486039063673434018713068217474976964741852597371115123217798649957219275995472436972152667541119266878182427937577019025042144756140626138134788450592029592980983862311981041334969369532611496617107077356619750835454343903203266869389742627808871035419857762077042952852422013476450487817636096798811091950449762688187717267972923976144422111333489696814227475276355343357321535915117092959234805166458625993321357899422990174844339431826910828276785828137103695242707202380573831941713024151487410722387990042508995549227921113582845381636983983494466597982883135187554422859448687210379326346215755642744465540920578484001937576185700018873119742668886411246773295666590885690028584802910107868494366511829078870218484353324446140075694866914597085933097017852780114202736588847493160020381257631830366694645247290223964411866387137178418165996557423680582556839153660263882572548286324649925311360551288764815333684768160818126103901045253186254345763799719962353271892833528863990074653623423266288467123597949743159864766927520396956256814986809647396680075029602227891459652052007861559693111265289873703500894756353542406946752260624139109873395374192294689481582166279870892012199525526137527573756623094176549243290595194807193426101129913849144169227261301700930264299271535322985813327460750039780627875074269864173377226861355650549022764405755341081507915177639293111863526021956108405887595069912627699018739335172441173673009864716782593094870033385127200904513945319574761565015068254867056472637858782324149876173540252581688364432720164302871250877176020295020605165075129700809596149108927589786738125589841115607529676635065809773424048638931379436895936366631486682844832134773778379266372227317210952426096041830703520072989149711105229873412962386026748377547390449270154717846992975840028930665632806681968341459723772779328545036746908294237272488834259740190783988832239049720380377954861373092217852656428900471164574365954587805724782027552571275029547269275340965567664372758751814791217071972033925445089534090016584866168859323567717456642555541780614821131606979116363823598982944549694047809027295492371127216593764796207367618600085768627743735108254662295706822426381156235211978147988436575888012106757418335429647747639257072024348851989009676570237984525152702682561977033373546489255608228535662079195354394394017036641281404325521501043434122922932764672247409167712762188353976093551447968401730659193723621662696091945577670551119984675149639243464218367854748419913528968536578047375302705555684936908494152692331435375371081263681322270520395112195269131680242208946394958540286303653199141839721035327502847335501196590975876935822185503232780766592121036454498619617920360249668675261043328837820366440970760301602382060697786353511823939683840132401641763581596507182969036248070622654065716131460975494098114145964768473225879287920426488370408003750344494445073677643403464339956301937353073962773082753207196898214392201094608914693382875730973038995801992974412404403240453090468659911879441360782878827418527746915665485130195515348714993604079332082245348821022234407462583245193708238634211138397644736304052592362728891905432051702958291521797415036478395272910348975870224191231651539450242320537743012448888090493899117938468346199030716390449313497429789109871382508545245351841127384047805778891452314184735688423610343826705053853124152894808220376516965095620172309268055166696157874511822758109571790170275269978001258684742348679678360115522004049368836428393258550982896637174590872855245169571131013266154682623752398029621801176312313071988022043577816350048825794373811603138025076432320285456541495260852507812106583851200468517637565191439815691615832949839569352943434812040128804665385499822959782559779684924344742895301655693520374084082003477313970563454333804187475774388473002442631614270761025513145816713201006921415513831539988542549362997502899561897459642932558659770838701179941851297408817304928321308417355620690860584124624031898484365161789390093935478021188127349620275542004702149925423415839801937389982486610150906854956082356833442636032716084071074774440715754290561860147640615634308809160205049135979502586577428631757124177673617957289339582182978495200026369323603455635865835902841271281528436477149113558162475324957940487924022118763875391542642478591887870735491846770667194359409664899219400044637628942520691872346757443586187333209174907299600278341441686135635992029907549289094307469473203077421441859775117237770490970922708445733430865556155209328487207339009053210835275936274795604952894862836656624362841981956505522243410555357124240308942611347042406498961474787455839336943894827640581353920116737770615899936868058094261436431415375433077984579193100058281891741968710557876879783816193664966374954393586210594141511080772240433878757970758202586151157022682571358454267348051591306163243509275653530270807286615257086698980836398265843392927895417636148629963956908512062478121856698474144142910099700895200201940253926585520253885699160283063453905770966128835863778000127529530716018584230212383592517455600789020865724886119439020822530119281774039936473206695458541378807400884581030649272786213768965199935817155496816994968150871724502862105315418439920202330736537324643680891426787744261729270361480033453146442215699544753994017171567803729157947986273858879006731725299184236165712454371646529857010160820677045219186159162992915129375522234844032338076983976602029752829686233488663171991892330246756451787888507805460884762692970821218227818485859365639841255446430312106142512981261114497807407177769917697475935541727211716605195538031276663649818365942768183635018041861046723432185725967274206896680705590546420242225669143097239471063218241289381002606361610922897231189502451480949931810113208239484599914697298270364904559776853050211034653548315333021581911295013488059143433238845306515905689445636994594117523401635402708806903203783340394826349587811114594740457400785293208712270903024995686727523990937882069122260302420903152964657211166074439306123261683918950824203118481269098931510096154613451440813429237968930949799307400447454976432613309842648420179574514939647885808699042285912129656067167975531802885696833308347321819126683317811017052289973886326314752393482976748534846726247055163119261508180637658538490912904264094927648985019653602482416093207907734700529934723019326264253959136565725965996829301179788689943055571820408065879984630551859626752701592393901928499902936908411668618174957293943693802938554552297655722819597735102292154104302487738474181520726101464965179092941676790619978574733188716426757729463404688939157098457398424242373055145782185765257481741298992747974088134782621161481458147084196305757261328867040422719177870509038414481068639839954347199485409928340072814867018360175476622725545517608920874977639664113220917085241355943747764310357812152273189363501298959056137308040239587623864468242113557450533055679114952648401160494821734139010868427112802598711164896169676700063390619088529089914718844384002742545880935885800974655237216941994927078383550549496185677645462465583518540966631208678149301593594244180484287857849334302938573391745277222000014186166456428123695512351442238665528069573358455429630132017544498406701468285626787267682005307591903511419330694317803039802568161640457299424792352958299299470388999089256467042234263385674009498700507980669583984524041292353283959128407448255034803722422830953176017708917932068992235438719224797945296087007923674639710767147157524409308745038318512411607634443699483787035174415829120709017021654172082983896768798987670929631907689191868291683698058839377447671808305621257212097660867186623831175705339515206855308991734852417538574366224503168411949664148299849338948807343974545616997427945092440726723390557323834183374470140669131941504592797658508627883360117377947541026982406069793976281363179966146005865743444165208207900739750608090158538867927119296982778733685496979772543106950902763348017275636431486304376414574872358150260739114843105664554837857040045448018187800197963408121369285459256455830846928495334876281106920880396820155978865617969839929691004486862377365237512425977318278494487684428178377165997451910163454616999460598154138765378400063250206187710624943803790236183743391550870544791503642414026114683342980572103404831692833977263682386376049184825324802766259714092299116910948568177041531926706254918899562716312530252574280697773686488667556239589804368679114355037155489203039682197157510472994581529267431277726097650592048941551005377809423468841326995168689766491809199203160439116503758941346779601822292875910498585114620094679709920598705655353036137067984404454479977308981351807210575792152059679807735435326008203820215081181131729495409063872018789565108311881853105055433265312642788358382316930546723363380179601092165755162742277415259465337984502673934557586659782106606063665001631803710280134891969424496483076187800824619310881197159066574466823534006876251968376468820209369004286282579838961803431172661451607274292600672027077095517169359910507129149368481563485766003489454586377400821001607144785692579232452609109970749967349627105791390564751429267179104492593890647695191184301345870558834409914817264772403163242874397373102728435202714456466333445054250464917329503960203878390298114527332328403666010740473514009649479577529497774589947744965194967465592872242869705330660942966365966755394945215799533056089696241124430544289289781272056076239097831826707153817528876828666225400197206722272041121456494458240024555561044289754697335967353384848803649606180066752539545696824153846049029127009226907903742859292596225750554631914444415739614743910009871760454410981492482182884203188535302685011304461862035677340258876395398390005609334039964705859623544156811215293594794768759725751402370664987103242214537872766980491888225687721730079645511954916394769886711955699889817385945917283192230474456499316394318454811768543225316235641775110266074896392464322066948438575085712896453442471099994362466719478070546183379219748930411194061046391731841922123825869089087276308413443203399960224852811326847306028162257895626470625141535671898749039391168727666811315228263883379542359230421369280946492344783445182009242605215450208901449142060646245139479593667735793775495393727685369060858804957482502365789796903508900046110672236328973851217005209140509308641839707222717209261641802332866726328964317992373049276537534696400054236222463639257311081015165217839398320291691434566036260742502862032858939764602668648400053659074618076427261147501361024823203329367675847637146717465016136828053419270114983810839671667485327947413178121264065790420586646746493074451301962199636271599297766735625213268017178038294817031564783465715188312683236958392130207844607770190402557382502712004889104411291564627615034583719230432595897006771964680219811263116587931574176524190665317422259046502216024005630303630066722634442882942537966321771930218360837713194753006766236816141794975945085821061750395903348847163906916898915285310159085494708051442772365501659346635154115010801102363626242514516706750928851307672272334421799674316991635514428584257255817365013794933621608943187075101515345763460272023250593019928116863880812670805206919433192504279931310222537972312052256623280421372420859899626814328815223709503931548316505686526196857601507042069599013410345085519100718790003595931721829835871970990818591873409260742506273884061542312300573363303458505524146817804056058588055226383111338124221511745986298242132153117866595805094581193400309307477745618872293847082999277193058308761110654398465519528480418260854688979017273815902318201018000560547967494578869350352319069217263096912950968504024885516892100189486895335798662920358645830155078129271517427669756626351995666387467347812949362754047421890332803205793786908369062442579772552055780665103452371322465081062553973253692238804381001149901687500429432283662074567320501638468031783736089786002757621844427723662929889288661418649573251231390186989560808570949029119007600102245408760914456108626329993583160326972068995833303474537558318291549153056963720576127040312982871043223214866645915812091990479585437217770138980928676851190608950907367611696446550566546198427430090189851871105483022309269407887260190029199072685361177366293049047825670775079228419128298860910043437335001083895370743142714505599993688440303271862369380766407982927325392826023347314279162751243034368500135699077646605078772652224334601902095674002030402595467076286997959394156739862372313278944885314282407256691721523311001634832818887230946391367055878198800925725031353363721320375052711449265623979704143593998839498329459445547218608721547359951105749056209901391621675138783726068316878357249704472109546755526763468396863040169611977858458424816082458339343158751319162574377383941766842368578946000877714430884015790267220266869127165041080655403961363486456952250232874873462066081034607059558273241977640623653807414441049627146838276397722286864513648869607539008330364261160773825651155218665361995597935211927799236692763551762107533903044654000003832487610748611828771397502763173164795278921814256628882935374504182089316119512598408042267957521591470222508577623485803052926281549136059277958193492743044915644741274447077223625614936638373293016628111549141499119389819433659681796690156966021870803228309895734489537608418208477216995391216646640662962005184912254850728044266922281374727504201134406747241794092857588636258624165113509827246943410311485412342727077772178560912630354254287004636942071904630838972373449768957402704723666430819284667629427132593236502010078930707759724827420099366723466128737550879207368658280423779244935553678589427394210105408640125650647114499894911632644435804851546872259076299504705954372281655206340705028382165522036614296104954802684675863420686960486579361625585542070359502566575774294723663580129363408177354534351356142829789883598423189795325311625303999455544702277719705609692485117161859515082520710690715955220097399823174234034989653553673014842457106462364252995937906094187735146749678506919073994509037868333457552176909044909256414247757319332694477719690409091390319856935194450237352871737946142074224079020143229738777112487596400685401614888432063985992813749643320764803731209226204974237098938010622480797213086704591836154112284207218890956590755995454978864934360632126692396655576723296653277879529099913891462441066998034064148156431889962420208766091462431741737134169114453835522775914232732842734521890275000866546627267566330103041981278347157777660291727752790107679599731431402633731607320975780031231434887968472515243981237762976671172070705602244683414423190420403452950849643893147022563655977826430242675468663229295842276989131572926018133555504693232360263751086609915577949999246084027805065780964250660353250325541663507290773159249917038372967604557414687967273029058572912192177345198982173295840775227845270358331185892408593205532011559086284325206156303375083912599111699442135449521679607429875658746526143663832280560142917636371670120983717132182083674976117161599810828236663103840964854895411725645382451795581997582116783508163527634632386885524721972575337308307080302449905125910987372066198011872636179488121081486756404013530148985768409604687373710437408587694664667194360459023355577154279364992605136104124345647786128158272458187946281222691595550080074023251649222686684728672280167514107865488337758833875351116177995731935783215409657991368377775766756250781105204997370625947587978661925357062101488566788616610926449670008303387997516586960076815661361737873046572908407348899760814611008146904293877589563802544049170096135084731188073124719829966829993928053071183072380651017273202343370440485474467758126955386334546682528536495703790581532487969510710417708609604191850486386288977954225322495691063496627330802076865080731387609137715294527613997986733178471331278274146264269978013212148073563125751682612648542384381473499017294866745484758102064925220678293695863499936951111402590842644257663189012386510762523158072473294514578173476213989083842391672434554113621545321246455847620918410828250157242235052908751846323617977797094303939657030012996136783435298043458035783481544706389185823924985994532677337224420059112259654655210474514181854087725502111289057868575513620220068195848153696575295336202493034585260338736461696689779724143060161403820917863112544196672573755556792145409307109361598860882332183597333094939749764789257565454860261917344045442816116451037137351337771572931966834736440652152755634297690345983522549196935154146545517876566169561909247344070251471152784855628997646764922920154115501629358909344724248461572536894369833969365094260402125488869941901196451918283811927191622961401311446250625398752449059736103365430580032680748823706450414292665066998885106971947436205934550745268530219182296052740594992983151332053416569697075584614610388724956241941988010820016535839528914784434317432122783782014430953722002120033099113985196240792611497519014479174343953111731540080813986730756842558429159406305362409070482680820424593196351260080915705161960705379028213934943566157022920888575819434780455141319122928905343751871248101766207346015140800248015468312791801017652737982226909286723333886017238130828062653401298962189077448778318592421472595824078149333228218317131767456564290649775948943348085067135803081637758795977662253234655359544280977482034908066741433593649693297747951425400692611597913056267702316738932366344388937656163490729805997052065332305200156284422042098613363875111841789060923312060609992218993665437509400504330524985222077683336568285559406174130004753766368609904300572273664205560555593002271190831702220065398916473870377347075251372251476681574833326556046338500472327287884378281063132802631518379248955715877112282189763354598908733599673244044614112755407661377377664461581239424199491050291081569783618121345605090509118919120165882899504023119419821766547562574228320318791806619014675097013622896493200719686540097291093730150204441782172124049720425861372714936683131462034436367861683619277301882375699139614506632528629618185492870019707005303593015414864564761843744511496239412787299904000265994901842430863909456677942114526904592118592034051777480670631335930662977204836517677954588736445900262405775357748755625157637847180067954917587256289859400974236261644732328249968765765839466658957056652488355748042758713326596748072221244610890285464884043176600915486153257177677951626114449743405617604361260877258915463634128850385750711759537049417943497682565324431898097335018405239044704968026409761600267240329518241246801346448576391162569899669039825703278779374811511277379368163382898300471468917400801462797983233554087272015407138180069102041959654040658281540666079305792824598238071950753259350497488628049925975883217198636669253785365271309391605960256216329735152186819035240718483918916392717803513145926068574284740517968756219237753281284637161672452569485486038474520121412737925867288849538805827044760625191248122319550686363577169682987479376129188296201897571290421394718477009330652010515576515926828238567639328446407563259409464701629308050742923814395080764013397335906123258248352439078856021914724638182641676960958618851695796202423210435360115104250329447678981248205700278471012308087799918393226504945805616889529074449675838322869461800584040507517537793070948889594857774282639068500412674588064815228610700030366476090228283993106424130346473856539232194870037624434405990725267146891053557623049699484052000130743067116328878331857843310523674773556005999616141968377512452392552188336723386646840239777055277186216172617166975861247849056344932315288083495610267471655433461957721459198521962663079468434039649918983424894671616706618897689798279764390678950789642571555940591028395120012877680371533710962448241765276732849764573087458749993063490691372464631124181182000936482465828368544233952426147850059682354415870432421579386505401977112080582404910447859416688496545380250035088730477337573240444863172642945452993747469941159737470631222999900612852175197530949354487245441830206948472097514443843783938146775753575895493151136519324065444432854066322913698462074869182273061129067471806134878915867829807197538835171534563947065911766922015388448035887843224108884174877386494291986937011362029193446780732504524430256208620195938311459120670439544248828203472809924259168687237200870422421334443534595387123688399707407206996082435465334985603467706219286425685818775625231488730774367725190440542611898924817740644101575316577492602433863876749015305305518157209262165601191602856847361857741843004880650589823626843957465691585735954144417108059021261233575958798490893678685096467796116340493914007945007545277061793374128247277268221915283232346823247974871078144753016169600328323483820200667423697085767263121781256950370199278774566599756497663212575608084077256146754854879077512804633210973305953886520728464194738136698900858617363800129101799498790152346595409219297109944289231363862542678585423542830112633232337393812666165422357430364845978896287119923227569376182733097982459903669675941506783349062729228000094177609858318638636231348801017599441314818175480592411887528545367642643466203609555217150418271931444417287287032791498542291788156619028788609498829853384903388144934767195019867976027414857998664845844050969774096386556471608050141727357981062225097999122715527270850238570339693506425996584656546264863462229108124191198919854173150699162144638169403149515550004622819641388433901570759183819310241964249357731867858754703065401279230933227670306440181848630380079240530238995761328298714869935880915937133325813918491600375282411319129618994256589134059860157221877933301921496107466370144695424753868965999268438943908789024517355060646411953369627746855728939683640290143263966221188151735584379277143821101426210269650272608004520626377601426416114327165826358530941442101455581685059745101193301305938760635988477592767718581610221264739769904043715406162718903197342106877864887098063576459141318779277131445877211988574361297262363155245324414989702185888562609369907510578588992527449559714815202175440261118633563013049075861056572028573434983778850432844336271516242198357101635921882282287223438161299399447523045957567002630637106517693348073239731342441351651475226852235961817007659123705311039330308165236266406237695883232698367139924312711565460238814994011437898726901656208292988969041191573279473610989507290770554946124205538158187915028062128811551411218627116310985367681051494982265193633455497115057873415245411429029849410063651379670583989801581739183241458243218808041186365947395242130746273424957298240730906670146237700935516571971134981876348599675920562056427685356147889888320345262296334661734290807673407369686118496977844192164176591504367573424042157076222357134586373526434606846576742044634260372851752175352042644395869937969404468670409950811319035741901638414354398071014460261205936843350210985143919718041773726218237124944600046426689713079889449592140846966282050586177171441757406022531468679299780826799179638562455447213399565030447526328189469352270475008931271930318649778095261687823304177936739773204893790415901618540863169429798580937142997184624529758403080199978464016519016076695275451660697289306567318332212410164870640772243438556056033759903910716379324956359149740324689379057403074358247888983056412681359546930828801420841328377895469105208593471415568939475393462605235451326611459119120039578081240650533689561654064648020141622185830155170755991580201695126088769337437761536654026351955056327959003077786151342436836421770431503982867513008377295602478495435910931104272290647257000802271462073160344622140103417437381575446482030326717145995814814108512956072182553139706139852500157579213495656090622151225767752905828868580501117628145037462388179832257140893397736704485952281131961039737671105753622676643102462502261916427067102138150007168653360150133883044406020012053710529111309039072450649627725079484814443992414581088271350318017242493273914162915155813084649236034118079261535748117467031032447698223407542264610591414178871999635546885741770841106042665259542060131963284266104558770744246392450445159982056703886088216760481643552104952235160334689675654600649526581222645440032240740575984101525499883938257802603766375802978777376915704457565105391825340944147727590401453958326045573328681741833455954483976487525388444513833551652739790529144529709571964841444930292947606057301077893399779356015811063956210961138417808338662663936436950697662898993455996742012338283572481413663883780195488216323008809494224598260242329960385176775027346540999132870903525291579957397467575622819352550054916443582556429565826534847095764127468551903618271450142435792474524856219219789765591942600167659014001675850503887321578934395477237753044795282155292453228099053378654229511385659464888230890232466398991584676310146870643384463842487046426317686027798715057676190849146585851198316495122338019331683080046924703397203169209268477110424824953292801929621098407004921877135343533334638437501768368160835303026769754107047112159051648761810412450942608310581986223583002081337705962151370768709222690281322603289825237828181646703382299285022449262912882737226291847889214829782723311904006489187964902647843422927905410142813995330177150017921676235863649673849222554581980088558485369847602436820520796940199897742279252156076147814831051057623657783262316694673851447871971107923009558488222319467094548302799460306594157202563358115687893418709342440600981234425373443727584510377012758946953818181420826921071619573688669425904991341715095513282827082103882614045992275528748718735496255648313761971581032627699777729783620846359883718896790639851195255796723340905049031314594819869752193174521354413594500698062958796025299266128783742164599239437908934260246828755820500610542273828127836775082615495304662927158356595726684962594729326219401126336276534265624779731111884521224671634182791882319720523696428962137939501811039458203379022864542775878390456125632308061708269549383438611803170617938907688789562298207741335811510004867851042774714911847362801960571549088485295456176530073834910466843627833801811377186130616452712240881449870232922769738945095624097570260590152328549686070606199089969044809909962301605687899869333042311410674370821856098743508019826736073775205050406543108154699670800487940546514461175041243287825456009472861809048463832810483833722660851257860430489430403332838039188717211516559239061187855190455318712377903894806542470184659267616267213257322855326017358917126405290374686194847389076936298295625155580854978497402492205101070633220287096148551003976372615715782190051489864661264301001353135556605979946671701491710430595923714587275018497192108789693454928711685305842206406597939825063094896836518791160241472193508664983505256501534821536605364667053856355858155292590453737664860447764323629466737708391168940872595712955259121048743902405805896801335769362824015761562430949887721320378560171403005005491346762913321951033263264215179528190933078385160893142503143801713827530471398038685023999634103043195394102742489078029620448163040226772704349230871292921325178602120125477242917945379739159529079254243328858076520641227903398666503799183770396790798194768309545481733814232172126865709564162467651165751424845438413638161720533947510881949598914206999149568539445464339948184386987442600949322433715668375018529384552776265848544409461212267099360459005078777380568424147705006382709997053069654122256789988903984958259816617592573903508523364579435051665783552515362225398929892856471100845545148578352038349301913987306602571756833698890999569062468968935771585812058095039431891201950312558186559708188967197776086782365518985792331467340766457686803924906461941356626390032281465170729743016013463310330276671821221669820106879806481432760741332462254781588890836034382803106364813794111158654155839042578673179418446505081267386781808252714989585098503103771943938341650716051804531740851752170244725808637139908781741027536634612641714794987844531589996765488479852897070241094397095388870988826795474703779525648362898154866417853714898435910996836575321078654440881017474599426399790035080259495063714386179402976035024096696290871458166731517537320531161036270897902718490586965769903343523757271617550975474000750128894751382752813063697753404069702150996610631334553645196380677067816468448430708979055510062860498727217757619368996852919012933977666983630331127831595692769262388579129914662741266869273383039668755913729231023382825286424031467034290514464258118863487135851225285851015679446359600534843193940967264264944306538738741227491287012988525209869185030984540739185249745573169482347813323687032369718220961955747826607135413084808503790567534910945801559297571522501829917668110317179943003306187435026088790154356569332747627796328456888910009537778429642181274783279263474574874544582071426232125197831174062655180042773804788765195257767850195245233673255403508102629322695407250118582323850618846886105206710236335008554265782360636872007494652382134465105625782854943328415587004681201564145245451611527374267154391115029406473335109332045609378356929008820505414097713582462696421070048574402581811687298822707192134727869065001409748069328834067760971387662466521119512793208743914641031111677627497816635257855888874357280881390999739358244019325087483741601456413284928111207810541839692560067860916528624984649804224212120304946729029269943329566112151144358040918675334246973009517064564914700999341655244785843999699440052136075250798234102013482133305551754950344503565304790274397767969933325001381267417304546760797135003135697621006989942188542728690362565625983520797952253317211139610737738328319867310103802987193927707912028880806297698439950232774369758943072716332407977065680831873079794393412480301816123693400597390676492887552902228948352967689332734474303348841027895385055221819937020348535898054997818697610568852030449625451217619911549828337127407671771563524365585982606389582668864910517448633797224353884928797622239120175891345208005267356815571609259160029945644728917754034189553033572342017748154053812323716291455419017275975049750295923244727977172859622895948265498469301104580708064752182017640480569524440954126029256109279405015815870562538505289647730263440785850346288753444455025684357513276901485539909176284615839592973148287319441202101384957735846726265371857167730132324320699740364571286084959560698212369100943893230102801260805514807659525051651063826106236501478347585120650075494179366141681985672889559132560782780984352048466420953143063270917385187481958601259315085114207181524154332665280379962973055765642216432413594561356598994473824073951113460726958908889914743279988571068683089556111790062319725417563150247567641547218799781075754634113884384536812288767065021041431807617389039513064909619085420606702581579384334685224922568126592816370200304871259375481996484617148586913829927208148474426183617863491830971739997521315479504849187510821204589330527228629424172514791090139638661761855459622704242725904832198770071449314867956227659043551857691806222504181937113246825036871082036889795230899335745034969511027966570821470109505350180872796667413614981720396291209870106743339160918590400510427821057128809776214271467492049392219795378196307926123807836923709829930124798491435439639901179080586880916141425084839374011897800377602551598100564701501409733797685496883210721266419788551775097261358067475139195536157451374884088345719933708640792440894880517458355717077289300086901735274093168448979632777816735451340618089250499023349781141672141557632695395584312343061198653267755428982321667107639523525109015250224640262194591607704400883680553352242356311961921913521171597328554847108246532366221502150852616298455498665921664594884495226789184368540250612306424601125432093928999018193963073031084607281631846618719296748078475188384199822539085084186642643238918233891613523451738496384068303678494567320220599039740578703962951188851815925009792271676163774285679036390172946776471241017933678865029867271491193201874328882991638796613982986723298595867675242283956109666958409013003608612053171796671899140099978944840891416238302933361348734357848753468515075708715958845924063166963198608059840237795296959856313873247610802240037009205701011579774781934021650908838287527601018639626661445543318898693787191992464990913079368145477890822952033222055202866543841645126001717117631514179277026043093548074685842173267862981705210482880693434760286644181927669308204898987142458109173828431811030651092383921765076356330407063077021916363460056218831466303762450192108970468653708388120728869775438971977246409415840616117532600451962000886670426156369609252906076913422682830058663577087502349146084776589668212775176261601354358216456183264928437498495416901021386980252957696539429656947477393064817323979342609458973271191428855903132007935084428226545573367555712340852833137943743871192838465928966831682817868495305667761974271381695559930382530891438478507942873057114105117000359864023279541302181985190609610755956517355554383484734818250901435860570438976739889317725425867105667203722157876643716431328312769847056706689258942440127536192497800296222144159054035264944003194784621710949818539161061034733456598369654634215388433461769396946609934571460933862580717033584447854950137765562791881770346408326034535474690925847460716550939005608261029542892297022836676929961283377153933736676688426055591590379269416692308732665531026302045173603592089395369129951020744808801630898110715510493528241560771748053322409169584280921422388524796620171269865533914564748318772236182654864089770896740683850930517342138102134171832804450171544964618290226182394739372680806429088237736920209105216436443739871106665051776250883421710520740961064832595574207071930451532847008763434285234591707291649427446585345042396117270466855541137135204630929290591823117116081356752257240265005233397356857069762842446481201524061854535201545919322324335111424158861470338859569181766162452657549561146231899150921762614743857320108312404147449269794968008508262777562317974739243876066039268905650469379684417943636287675052841423913054367050016850848500915425103345598331721399396376027244149788679987330419636508310611853033950381645824395294231525068251972063994044560092148324077662781315445574016581433068184821285650688781708674532196950063906833573011307934247198047597056528406656576896945104610864938679948914147046164782337833226553499416255078204361354571619970031222397953686538806334709241325855807448668221953687911734663494917663197202448162875577103749263536834846358915669802390568274536404783590206417328645727202532079549735187666671403255485881198997134787695067419673230852941453118348589984433354846502821300702051562640069818045796063653162697165711260889413203915957144499858133133655137736853839069271469784066986577647527036113063098556833278841605720961683945495486825806957249371044963642901380769291867109328567320724223717288486426513486105722888121650886158324300481518926759444878017399746572655152513714007739461277705535921905067677087019121365782388223462139701356546465076716726518334189863052025133788908236583465680589668904602109863094601128351477770869050129729212084479445762579264595782776824066102866740577128960826981305909429922312570419883955485942237103834127563840411216668962452859186771198330942301380516607747644035165600626634020893321401543097889135758186120485751696442969120017765754199071120861257486585386391254544308576924754690038892689127664570681612112377027816223449774123478130091800841197679862873384842537378821875848552359860018756998192805038275841231432129019417567138620089215219023457297355118654944303366320255581254840927062150560863676310858302068033778682601433342430470002712943019891050142717527858657839836479325856347068652568261594226980774856821768579943379448151218513069823561294646289477859069249948020157032653089793318518295578450236883463896517311761256946917154883224683110847492468663750645152039391902922733701056722390806385095803546837856365922631850925817499924482200197240200735070626435030040519424286957331949709496620024332922731156664219359407765719315681265219323888208799692625178158794338357669705936553640928235317991486440054971192781906503887842109657899972704467141190020291403636148994373858872105090934823591619456148326461816598424280069874791276801647658595783686540558360188243917694660132559752677223393311254823691077424236936726591715859183359482107860276777957227926732452890503694776730208081277772801886483383795533681874841215324685703036539800928994733472684321360453322955482529085964663892106023490157033308319934537057075003211994274915109276102460210223187945839827672867726319065844435676015324166768480468260450559316958238613973354392096181904504920441950567333605439575760671706366548959102659614193495880986397915246554204898271039667911081680376204539390697661068405111113982790822499162957387884886670398445828102520643787815953054627452668051870497882326703178842963990365215822714759799461999662557260635056835919952311422220841783344824299783632121717616199076605169860715751413981983269546125903057852146957667472194219160309827092706997776690953617032446826197245983349621898851144245030547001319674553596360119189341411222119335458593174522046481653464724693756800882403568022552332802867886923708237564940509477069196232705692153939674114174303348439225125560081675701100976095912507188494743450585303831231626323237196537062161298452342329800198589662344070589498078364909705176756238573949539109414654817474413451680997942514295917959114679981506303589969078684788923261783649691146166891732703284653394015515873246377884427808322794304994350595303677112522963447442903876786944693326016655277114786177850315895379003921071631042133713590734809713784928951922752035779029487375329304584789137413647222135354540149040613611764672061209121785378210078316236030284497770134478442417135417526418732027611285396899443120844804625732253153320684348809459464297175493449758642774579583566264650935766959328672698407929486258001587971379340167562183972980448686593193338441942268407418780928137578679420267109002218281360676882564262058220132070949107229125000912423826604776120514396017464118996110127428756935489946581275460351204159001706952909998041792099117972178488530495418886291554825436113253457335425097003503424676437493059460174273524968377731161871467834017392444236281959303963741112552320178905640651793702209304655728938920753532276538254921880479188870070943033319571745182866666186440234510784429784369240874861532012780650561057681089813870467280986867834309052718976908725609105591746566485180340149438054442078477608695476499263477593642040496940666894960353039805013553416725949301453416366061149872707171390907358361498885769140963782171491952008485532621162344587661968333168978799781945674442067836344647115258272406615649915570794889288222417583570604733899897536759168554910832796457460284399269987341186428572908796943577216505765864163570352898416921543433348623542733022396677977023819179400758116222980209841864713973732960889124693470078172010582359301299591100704928982503620621782007011321917010576626842191285254028402196416796887766834498994156787983999144657098074539185810379483876588290332606046185977872247084758048044497620996375459494508536903533980017679153294707317530832078895886858644187270505133788871945077934754150517032047239569101354365562720022516570723178534134573316904292447535036819770348335030222453524322208060869843281760121486885009785595783088874460727598151190389617397784463490734539660165720337655317632880854072461953508539875489059690822987944330063873908619907185394983383824460679190991413927053175261761592219565581005032550588035702911641558403678859236233140086967402146506056762120558626711339493664130679806773724420260971273257182455713548983312999525119362402386592737973490279808181698696003423923818758206547621626764512851461587364402511547146248846085358725746777106984848472655906464976321985045864462446474609847422659582745142290787894660010608458064208888686096079471049654517545220632295687248890559238502604808547516928505533477669846908050082300529732930993551958791266692259783272426751762361056878971666017374488395653476469244703225890192535149100657758773520580377008072417683855318445778224965921644323928179348466965259653038760279270875574379616301709214576527275698171112342281584982048244101922468776424701244103489856774317995411569598534527866040200012496834336943558653926022898444402263810224249460220624770078670974856182541538742569550566074797238746988798502887724549797990304368010523995164928659560925405064672098695893493986027689948865654770255194083709434772234558068770911145110937724335808259730781007768307503671254731231880056016066717504837945248081544487435014735167655588802594247492541552212309183592142125225269940767184601957722904996637619029671500388051199696374876822934195299606312574697634014340037591067358261230791352389012438370586785890849715447172495314652763048197868533386700897392338034162170507653610163240100194641733514908701091909366206188312926592684757678502620554818621529079470307853280007608376808433909740218892438717351694116505058781128259455294646834601531568383227246343174169989596917133012532809646686217936332169963115437072254470438304013421974177878400971888497345983164207889762050988660428187702046914619110650748821742615427906541304634882414449184573849841413873327588701823804554636922111720592222621693326330284560134721426293568998883672995191808384012694498701867711968074114292009605755340994562136278666793946468381004190858403060822326324940626395633358766196639744202179088286657584775458648147547173507776042638444345779123605024403072731152195451853444575651910320658938866233002158340376018879474346254028269096638236026819904097542213463793391948452608649611089370774346339636177218020800431638053386266894474967985819049121613600215857517350465507210498070075208643477150235548818622023216763330986970178113648814602815554583920121328877087755095462374889006153088613824622773820022866263415115313656254209837113599462435030010091525302236906172146671476860662331514446674819771903349585171049597135783223096139514971143599874360241541272172880854256545146559574176783610138368655075491059453263671837347438547374221613587201436792865911800248633581937543247449323731969036294161820761083484759973616418022710785587086521866591795478127264263787305033470791278046918781282491292441264324275762305556497205615800573909431493158920986903744053679047823173019288289456885324136652983878323065166681622838882901631239006124248716510922866011260630025797054074912055818914042376305258240008598747698515033048553801267765109035951885623452824748411700690825274728090558136755843739511446944075845574816009770179461869760402100253065029817907515344660592729911724132378792894070322775825177016635608749472110695745920615193169493062104621499084863908584140747177963686128712687153759911127035980993228528368499430559870473065324287506569437142340809850806259755278818575024037204510300663493540500641609576362870982258457617679928928405460715464156820868344613909898897351885771249328914158767649985304669737329946271107528557793201878144710499343499738216240355411382884533263437974037024716375777003761144520456542526680638027404786252389547530476641227323876081652868474349347420291733096742809106203703962943650911229923934120953478924654404199371733659220703054407986130094875776690774891918543488541073043522703822875792794527928918917161457085123170541517591791400225135097473916444844060196517666324021328817743596846058852022113168336895710696918590053689833189382750252135979879156731372626510725469951925204592972283670400611712324797869104490761488414496069406910961314256831023936531910785670996803872851496041368345853261408581085115643356886641388008295848072081828066374090038449163506909008192938149223468711252013857768887349379777221779502607230138225960419062546268830281787743924666174065568088520000473653019653111754820966025292778234320584149515294575684620651261128499113529985916209721960701484735004077028170054258397183737861545850208292622807533476633163831901840472123993614615416116464288644013921971704035752908610395427692272813212570308005379910660852701416380441595590080410520271940754266688423021131684131377964478716878926505635360456479621539188593654191519514919993078361204699877775302282289909505936358363485279296277241639213049549974662178204988972705743953576699781230626249784290259538584928696912753125144331489777720880121074817924240094365730203034688428622759286197108784343866630029440488630416154515062502809389387100851088368105040667272003311481435291136854812423862228322764034087172187551452010610680235206260154213592097363752302261460868388331333096793820691689031282922090517493612259580453599421284948403988118883043904193472202585830474545307045721888608257802836757137028541022410904703405414611517135591276636306174331732905250383695376539956086533293312464130912518992953444979064710740664911144869276722907639133321837648140031179041951600176597607441363456864383992179476262591112351607896890230269285731486206996608115155678549765224338606617336612723016502570494763049748724437535207549835558548611226983817585969136649549962000867264635012960390012652502214559513248967160717488729269342733334007922814579097927328047242514147373656541535751538942216073177143176748789847770164229233939078969896636083154118980061393931676290043266305754889927509432111932299987496986894333943103703592073817834381216174075699526043585786945257146163051895790902079343501516508305800458040352756856352711839909060042864308773237782845685744892854695497146061772221878596185189874813860873409859664399319413453828978601927120004329337513115375715866001898113859873227358689751806282654470123778765831807624122514977446695497199408174547483482912969573781456097082790901708021927286432497433202469637862381782188740519046951555473094697894995519324083754323272063826131754021185643943567569270637565639481835149388342865385728594682837391802513471810084847725748027110453967693096249789713984341017650489306062417382241102245676171201631371610471880315368215412480624596376539300841026543617581546743887633043115711047894664933189780843278571860446862509891075131214488179059889006143313027918099897044647281764254276004682815903384451249426862677149622240723538143444989376325697093612073366039753233115099619740610876569947106994422079797033537376773135260407573984179862036136792551384297589786547550340980354893633783015905900374485771585360986551953758583345169428286956572046891726201450664306230912832704848732540250595873036384456571500520629292276819776992185197906151213681326184263269484122935148450929604895970428763973816870988002895097803074824198998866525224540575697529850072670632237179831744613815586962730120661360238590007369069826979944791250650012698806202764206503568814956957528920905783955317463840080086581953294570563619388530805142134436246613460221337327497922326939181283776186643766849783047554182854330879185716196641972807837489128245364378182553962234144160720676086167927055765278210341958296338461883139710696358508421098070857717586057840969950453186976004138150890139024413780829359347869799729117105383702609033778383296122209287015443979356557736366561548151980776286724290473970474083984354622183272704358653233922042314935982728460120420012360224307637370106291416937719628630225186710960220789434356925555335554383536950945864087332088523878170004007835291850715966629220773855696786804567548934096544068253906515136678546682725898708806929259309695764541815929260230834625757082495899149544743593221969115883113364178547942114497867808336385985997506313893071928838259250830969042076881850201642942967804292929527911023003135454191612101876330986560220946747549470310533698082907317697047963429613772293904204108904528130729439138230620441802500193754865387382503817446023634149790057153890957767863415481738904269546415024090517398530113931519556624435559584273790447787968955363348516142890127105257845753275483062831143669019041733294625665134146679380055907898310911696085948661546264096641365954128162080748975211902942288069404846444928874757338106725321882233633908313158951407199212431007005814492285186778379902723203519543924189088857796798458454483137552305496416114098334273499599359261247774443236108713082405880615213183266866535802567941033428513971836103825468605282276038617887392694670418941182093712570271660525242559268494046966971640015878556595640932053370783515816065770325189564259747485127608155541283927509973265326678314000015245638934547797878569341559147704399892229160504035117563441456625596982688286987672450196348964642324430019580357570269016194158531376192976117839957148921643532995267246643994218230173444494173435655054650532270218787229267876585092940695937677416495066578260275941494426866610976445669845812447686629595332866810378437015193088540510295664691248236759064363882428058240135015709556369828745628987752974059568250568775187184664745627726173006995626234408261724725329912730123777917809774179615426644441124788192464402124412510210848501079130513683009194804399475495682485715170876035920544903425461845444497518702788601776248172509392693420738496905634493697907947772466917959987274507979217012928487924477102435146943556158552699705687456871496754889991052361290270133802046350568185174451483309703500344929480441826558678392737831709541274534247870844535733307938269239140611424123309556033104237202277668096079711077019651801364851297189006157065163165509234451374836049187253612690917074948286684845792020947410049559547098359165391241586706144313452585153237670576637009169738610145045846966204376200500011800209100415216490813968066120743488925259520560242298296173232403112890969564269620079353788688931060776361153391254725403641656499114341947939116456046651107795602079288396999591668673651650893396510300113843801485641908090503583532574501391039416768973238384464123382492743751406732234496357386707569189973512099747757241511012294885929596069604475295152851574566639132176295915206719736883355943004798239107684021317968257678224842207946292626656392265430410253685223073915436238930116205875226449952888811683262957531652517897136360479792125577271413868043168370325833323246202788362520434577871348838383508133908597545998259845675987525667381071974143800495488308171034390454655060761116756801477425167534161634522322496285651517668034129622197352731134358815272156272892413585712521460994496947503546732166593078973108821802900506490757295577864585890243341037536459435827953811478855147046336760062470260085754655365206362234998293930000109848371556652673166864901088744435344194217136636518346480555679916311899248226762304804697083573827378301423394396503060684591560619001142262206014414108192502360501039621836176545537878503207607034805514782474242684621409697845449100768536856872273598200094064765600414329998101527863143293433741678969153468846975421946775882241385578898355765562562483721385283291810493391788302221405268476527716802801962935325997100841209044327341245494307223738182017281614595061049120880831685452271194250166598639975442312645890941346487731528748121327454825919082530427592597849004907276953560909924421969804152542542129320953592857887300301441147730063850851021593488690282802015350337278593583589450036581884812492637214095474017655770968768407227521691494361344163259273344763053461057973047874685704060310418364756382200755761585148336856794224846439804385810898941085709216236020986966001162105222367360719785960521384150391251609303732849796140762867543525321551192488338541451010785606604043727255928003056781758227148805985146998890499974875650101183005437265768526264253773151402292362567104860964937718061464368143976859892245199061592925423289649861463372910659563009074686619961300440332699901636438926526947870010338996139052013032150493411013137675810547312617992878180496480630187642624225093392754016952431325216736115908886015753557668553696322441813224811696636466498679738271012744245619010408058688789763425079611757732473806698822530546572029999286923541540387399147562764029836532601646332435007500855302568546874351446939045021181689864013593653627148856392881624934008794259013765220682697458414036984032628788743427975874099238562057830237323476976192362983379530128164207619234605208381741746459729079652211601198762130611379633632407005747912801849958362049636111427525421408339564185649979059868990768304482978262111499283246682318289034883741771621939474167829622552870615379756999479354032080619076949916480077329320757746294940028357097463094762018726084493830887883910325453744933537833030065875616601173605769705393969872404049517669040514998633599682335368146702259671396378865399131726464129356225220333932453926845641023439943912492967072639874278754645322303224350214398036199182580512686744581864022743992845595368687847229668611396970638003597120260558735285328580821281698418148592478397962941936652199064020061622956502153186168161161968590883774992293731000890456323909365835336216424601876217291205772307665967010490146720633961188077330333583648332946171886800047584648386180574055344417117141686357367751849351478740078269415962705852070358479632646212131626412729603346427511920019222088532917818289050106079844709588453988477913253996640370654760730684023797179453025591940726207729252174613198218541864088830883750501083213453963881577432470398344692617510411837262711307853010370071713152309013904405364252406593494386832165847181943272078951062847515769839839970029357793377633249778650787286519581407450986254018267827422678844215759604988666596564942314745768802971529334695425616717156674463929391528227734676171932294482413279235439960242647348685528432411435669640868955578829431220101568183245239012584687264651260296716696099957801587195571051397001694775792099315700652985090509850012247677480341028299203982372391306947029791096520881226502180036696871740214343335904250509450660920637407060658377167724912714630178246367654182552524723140813008838327126010000411010568776486175748620423995782992688115090747049289651034352880743012675853172707469241503275944432489746741156383393780089940290877059851094302027991150848835816322113006725242628735680721234416758774187407138949587397143198994865220292048880361522190299140945874496716270566526789018866027613896074267411460482598818072731040432722063759374513137331823680666270674916620526413296399748358555533290022205608026120274193818576558250570590512431153945903973256548555176216992624567666934931852219395046766261709273976176566506636250933951264990865937353712243351257693615986475624120933482611393325317079013483139615348885485389736733768306076752607511927428240754701891012154700786615693380380081120353616801060828651154527721567195337160080030258064834877348650027056818281831151747882294979144142422984959226047546593508884121021824657540737091101846737477114742532687578727236891667785391678344055146182336969482123074042579643672164098816424028322575499509650765679230969861018286117899427678540084177561521731434356727364161976020264987578715677021502495080876918324025042281612177846219948448987343537140297015497752124489012730871290897081283241793257350301363900723746441823474809327363263315158102483752400780771967964304085424522313958484705130715148637500782646664724070065550429760304726801448130595306540891556609744411832517531116853455797424551911921220340441131449832420613931884563200761802053121503245233440381893662184474925759709076923032871656099074606513784342665286056275159471163208858916300512209890640355906493820092560832972660986405575449569804566753684489405099279658710435474002993537668599976654568088863112993415350368880230210598896912267860748878485252240125766832113218969269764175493368027133966935843092869107446319174176033167655029957043979939210440825659717373513974164985975757780884454309868201390353035908958689673265675942557122269826570943907198054847943058727322015165976602028765568754162295674456760129843734007672255620262415214039859690518754826109586157781932106806366341002502111683547413505038879634144504089988152205958210208040084952081570106974788539137340321533406595918302913844540393794955548276009884663998216352587028300649226393549383571201948913183405277112376374262352593378999389725945385296051899291480823773159070474805491907395241739445486137110911496906314193330344352765073000409080714373912725873796835786249036307263606999719453746550774879442449358203532064414706317815321564886721050378771745745674564063679079227422170590870964035654258367130048736306427018301659753490709149918154814175165002190040137387041343667524109588976601922178812056311622110736396270665556866336374725382325034480681127700362467338072648783742344465435375927927998130343322497595651895307736569932759416928149640130343579949661092844372448044453538814652992116260140575993305298049722132559573846024747191666263200043628902629903852662853995997051471430719395409563182985163207115876616090916260906146138468352039155516853464890816815662338479052738642418158943830192612431583984090758421907075133404842786228911151188405786357542637924246130863444442043357203997458561593371762544136860946051368260653838203445841931054026490774294326645384675614419686334037954905240082971568300525462392766680363687216373651221951047732458876548914773879937625996693786144671598083603044693751054532295431790183798178026194835556384906667563392751482460749028616638262179239241816974160505462194898762767407386139310527432462429372488745386167711665312759160172509375987750036085685019093002886486528627064281646899127946697571208381761638232692963354931558793659896955292156605231698241002064323530804552855534654580554173271647666282554806816884874652198803345440832828301381556333588297128177779678990431987315450281207107179873045822188995379984974640209450218523166948728754918243255096844816681480756380343393878189397822730859975591799014666544284856168244631756119057851197834550874487059854742239759006561969492631173277033297811040190215913881687486839522556547452864995310237336948499016721004830079496253268779625389882052688147765817765278779481736050428071176312623328181941093499830773319359498443879848316916704423826204936044330306396719853191059966205030838250617262690531337217129832627251497347227893208483306796093233298925476951951764492750071790492560154788575611193761019123434813922116126422320131398494761017709506513370049192200009184390597717689602447716366896060622427521268297295192793393771586704278802971609648114277390208539246000910849599592470158916888914274927819816304905619333731295583355323238839700514461150539955154470325405268169947550214072487388200342515576472350954421179499868438191509692770710429894619140563036519591679083630493215421524303981130362628980250162415600696638120280740721974771898086863024017740963585283627244840949931029447704190436296543539741801848132941995715409839281148782910945646073308231571536320443145085657086480840900857116459790345395641786476931684273025515979260101367592856977071815370084022830429095778370830227725982701146622690484629385037739956571816557185194529909851881504098137559591844123183876433875359637047406067105609970814749537009999057602221324905339368664219951088418150740260787604130961549775664847091255770288703816606739573108574476827568586904061229337047976792079928190512417923151963718110821291361868886919201612772290406309859925139887913573981960199072459961290087873554658435755521327284088310198064809445022065940213296829206235272481940238913357627655693266302202686426676986701748706719548025481725001750830627814927556139243645560074660646726033260046021634194917901127072690465957824313540586917261043791095176209349715329922207325743945902354852925843777230607007753921834998907482081885188300734752578080961979952505848300301204761770416555717134247298826952940813846073294095028111670731016635014394067471320664458019886961266585422350567257454441463388775066110624384608970582523434222028513273682466914810017056912924903214811152908388390826662075097236388340121067571224164817579645384433507074626172942355745613407393488178675051983725886698711696801959885783937809240794489309513522308237166220759506071496676903012027104817865088330645159668408108133076318483298096387995191544647921561820935891267216883386881518615036760007972847198921298691286738074525520966161500660542375853486240577700253502359469580207118574075392196010830101727732692760077047491532214275922388267494794904413257617333107838207072323204290131526510284297049573440630816360694601384228327337799066980132849696494815565355457712566046426485080290836795360039059974784595986690540500931451830329110506745524413746539777944095276525275697495188858373915430785605223116891469751915488012791327635035560787536826635319666050309378994468659695326482382919665433151596004152258708312236721712057762343009643926966145740014507127821448639259888204140176609423778499569713779698338407050844431577890851984546697019734848019936697443963485680287226015384870645962114440219713142896294904870378190682378594710120808539435153594873759496055062253549134193263124919813503970235321879289786445482952707306104947150489749205137367684006966904476437374957006627630172059076585073065641077263470123232390160730227151913517917608932533356477165204655492673275674202722962857815113628783672184608020610898666157513627942193027892693833973389935509506314295959292710888713442160921176398798844164353415083626711847793992547328223056422805983383769298147332644103022654740786372758880407433261379135260386987906703972952166463732196763870087488227665226198252547747151672199616028268629707663479480213430649008837925157075637968131891397686195766953379048282707360640001734765233251975518117579587507710649967990751329982240775039930497037898225056520648197219161893510003795220949834488580415504660496396696306781454737230313879575023650216418399478376913382220080237651623309409082385160227344241433428407410386860210988492151406777258385963478762127953065791681860630084422256596219243319313944937483275073099882526463867579915292127002850908114771218006694795112041409729253453836588872039310910249772444632783777796573489516806404325444820720758377898743163742566789756280630207984784013902634691053804490751471500623531083249993492941007854711950007465992300917005672726522138598184904009106932844058917506989357877553759169762063558016695028730320379647827030156866536541566425316316060915195087053924080852604855321994370797973701154046971989896755067585345988381016038308909446530824709531443263268689568372716316762210012564486215299315232794884515996660024260344257466181720242694768094990843591565041497453059383423633842956787943334954995365831482026041582074586014144102517835689497392176695576763480087044382784071962393234254842960974168560026348187331860521624481143697674841596171871982737430526389394152289260520184516607234854845423714467803135549915629062017777790578780185806740847594009710519531747960481223161100788614432595830637992911157338743641216545163122085963983482392350675374750584286746579495382182388019736756894937692825678180311909935136684096166653178434320391899032928907271954172936971085200267681831530320735744827213005679392845928615775050384399180125623513397739887036427165027822366318143164145797703611627265724917054460636533057104557009183314170946168276292417671402822251871516154053276915764349536697542913140503853998078166140665191010278612965748797019575984790416534628778314933911982511747008512965779363516329407258148325274085760704052333174763301891776671307504835337313649939001662859737919264068756189697686158524200996886228660876711060732827208519580817944491411963411328900483795937741092517777794628029865584452426558587873401459362693227894821877181369434970537092716038016457953646696468541524899114239256756058971816078697076258283756073738541120842253968907267733357434713262068133220578240304535653296212649138734155040851153651098433168124628665634674911479718593292793763817111514352317818594097392925032386025576649506654834418211048204557215880613994446583593431358245031141819959249059597231881428926741699627404378190256544291927235105141233900831138227891233122487259137600399281949741839234825491168061021462058297251933333297960370484377515927194497696608345804333854427334330139312237590600802715464198805426405611201847387137429050120974726043255341265642038835232242529021486082188361938906938710336360033441990378481082360666044403504531653424982144000376204697433240343342400434538144803497716798226875950600636462395484343977326440473270899979865038678147357989485421818754749046100004584979746052677775509346589023088252748016672231117578431253420052432037693592722859934876740329765878876777523170352154949428938159082698068309134149539484721216787983432885203324006797309147969058604584311088628191050630216785104761901662572388192894750718333477500052333459327154420762616618648544999422888664594865802453730817060488580129335531302595400007774808343857607538340563377039107652337495788748532499495634296880994081282121080520321097586849185517600821588261855782383382822628278691578970220900414982153335747988955997997326298592981589963990608644591297060215615508476253631081376306258376130619206757439353289697366688179521169028350335200435324848905109695388523985138206861576724227737114818399438204178881922899636794850708295702958762750025310308612277066664176078463271296768231563461889051144562736102202133362700074890602247569862248393325330413421012026841573754267627156361316614480941219365788891499717758751113271281162858683528724991040517748170101828451821717424542739436003186369174346738061607709324327713054482621117866600775263945165475882217549232254975784180173586077321934471294995602643566596564172364314987186113908132021579539986881304107136378010083907209387157952538307059278820418288047340623791396905972133867427525882854215128830807572095449991252934257589242626985310297094435962900959991203004645760040178258248090766275495958958970762972814301914940239965529165450200346279393204239475149595185771233569583882580696755849112096538049207430497362156162763981703064276527596743244001148418815855032685133682898071333782867060085937610807303465579213512990831457618913395157604855884359027154860440375115970559417840519578619479622726693984242700974827227562272349945626428333024866374599850521082421172963396023049492386012570942158792274403290980640223115444228957622335496423020846572582655337734554890397187055917274342543127846645271444447096393094792280291343707239302552807628823271000444227772987457674879872039843064969301636293104485682083676522130102629890827603470597958156607070731974336731924557079941417016598685062675965726458575834305150543364394063171801675263412607759206591889860165846309437997024112577915773606309670037447710929865090469674303916756004059974691698172851885746702922359625939158386111142294999595117271840680797654377608886513665711557786264173352961868322322841357994561236486363821338065344380129431211665800673007228521813041148618401759935618260624994475906474026734529326833044053181025656657941490684256749290911673642698421822950723370747494890645867022772503842589497076139657394415216309238053216094651962115820640339754872786726389157696194296359925552613887206121521038929025615588533070520438926844502540126064287757931823579788888376500183880468538831767097053690598094138968152119722186883450050681977426247497525999271167673941272793688999175329862244705224034047010522284825984373307185889425638369414671512348066502142226260688608276013099489238493339711605012588375939470875153011859557960900652182875033830084524634975639394482706070427899512765845735819910076519454035296002117373965613664314675515281681383612497096150044770542253711748025997660009982311966921186341961371538723948240354937975532859055007095435155191001467143052595175390886967685720922983133141597717035292990895697258922401003017758176786735091489577672415421033086382258218822508751208635326187014617485205495950116864315178183367333993648736705182814749883362643535483825517906927235278277690825871313459084281338464354836765868321520345923543993471829631150022764302809791962716173226932687355073589432190128547966473829577722871384885111693495249118965618160853871324877810386299684346053512918010225658076091745647134918955099965256266686015787638887329176521686109269159719156405102818410313167230370343449322285614267456083715809162958311586703539737028831730266306282861336623346330468698656175967278913030518956813259480430642502156287019570746847201178168735741955803547558769273615721710569857721596711951470398379267230531798120460616032221680191971595955138455582178204533984367250067328507698767298171045524867476614553558684405656959707487960028981669145010559577081517081440828189866212293942407353459759989377803267272434243142152366247240218624002182123849078803846458214035524184795222060716701502189565322431354621228373068985771265657268622739966821631491519630276467840976272153232943119841875174368405080518732606011098554266055320911041999618550464119524296994801005997401480460877241450452249581172798452018068894889006369994468617245652445515313178704651798555595883648207164522105492718117950428936025137362178499873965324249967387498003203533520083772080334765622501795985258410755120496986526952555416156666419197840142190781703555683035961951632170641402729195986578453529964935029650937045046128435962286711998285640580717707763080242544351012451512058486784426653748862740436799675020350255574229470143159315551536718605769689584889408877364563364003723875162935032205326428531434403072927014462754291900557747841367078556848857270416878164225161516124277144287860565319649258040184697594169369620488539980882784793715388933469663174153759111015543697662621644918920742690103752767199966105667338169686156473831845523855427847716914107221690220739176303867798142951656347159173171908909390613522649521279981472630641511747968136858871901826096739546308605378187858289306096420537261348352287977225262824306936970782565129651630195320702412061674015620311753230942486617769406694551293057163211835513161244015348868483391281571296297612131856195993541508183595038311737801384702967375065397318040026661538493703729039377830318444084871692642060349186547067159586573443023919269584555576489399163977692508084679346379822349776720819174781051753675579707770159225182524998342548812737040540047877104765973616697216866408391120260072770609326847020331290045507434369854720880037278561127842237817166739271956239855343442430553895189390287589960899000192370202842412243996216115277499472563499227765502859365202133223647538774658733768555193033718846986366799960185494834312790419510512978165921197519124901755283020894300042149641407715498419993358468736132986538655129636671476976706467638589058573260296507594270030346960989027273206126796739264614679269471200923188097591705198434542977985128155984297477059310198718571442845792673743890905132173277942090085614095634704792241625483733924977765092909400727837781845811189822725013063314997380025224899309220687920335022775964798456520404337377079982052300359869908831462609092816707973411559061492365515287840186481189127344694538418607384648607837161251785624999968860940562987162020760363796155614639452759486335143778726147822466984905626134273236846951160858304907908757135044891846431928451532550678537853281111872661412847495687926261791033105207175422320018008165923002106479044968652049067549829753181183708426865388343649961292783015070167900595462209169326922415818414486955807132743118125695655151775823119171865303199314702915704836345776754376313767146890945865882019431694127364459710975820644102229789467424733517319241143825931226895021072689091000091704423916900438775282059428414379902459077729092507896671147081958721373968581838383893260065221090735404722268442114733899969859889698791845528062329747206062303998563304945749101145091536318775608606076961907667557041155005440892079593635888225898458371402632495300879671636701740813495405797293204411826544786906302899600364729305000611039378684926803846095053213987884748161885669984502293061562777358286896425274858167898701186731426841439575566934427293468830195484755114477180416743832351088184708593138393103123670651511017314016926122704925028718228856281023909414983405570885502559861881465021754085926850804920674985731508841273758058055220906984682409998075455458741777221603229905698392728568459353822877925584835447980712509147251610066537684840158607023208862305318495045925495615197357116197552371865626615380663390559832626376908854264386366807082666826435000071850326867990317000040362057313684617839191348945472028531638937297805994487458117678418093377785952683901781289062793044862666607065013968489925649751639896561473974946465318108179957989927552980085011904165730686370727530572350583317007726558665108103924361976229063874035844436734710645222388298418908031759647864562791004435342991622754819831375712916651331168432225317137852458072678308573764200808890911027067282889642990398729023506179348848985071830804444341738512315635715024263633604222489267799304889627458794461537103719137812044806175576685302446174417556802955173337252918927710018028170193068344914307618545362981677004303429139434986581222105877902653216151308969984640596256138749546800719998036533563180578140410215175125837074528668481033046899247588217029091334856297911227695824206189317727140286572812755418374905606120104228709368049583719033418771412231810329773222501886081138122654348277366675781223813873044344856536350709261237088217171783567176937425905836306157717146953001817290391587980141535063411330792979426294012589863949362510806079967585835067270914169223998273916406699455632801558502462358545676037215539611830968363387807752274345695565282279345216297668008510291771780523619011200108374774360890768629053648162142186402933266558214302962772463879072241259987140743426752284604403838054835765554572047446320938220769813785068651209623492251504038127708109723588919476183696802935425654579071717614237856012564789591177500550981379412587223341215316733415645744809544183897153563176351406296181266198940194017734446599931274994855536867101398899347858367607514790518272401338398492672499681377481098151151376285329952518638803393099742525876343747523707767650914353693522207973015417945197426018449310883272656586497581960892665727825073298845973572149412574676276574755682090199839203947397945023632818596922861332367045539733616157685416107547549320924214222125943365752056825449273226381492882709667018073863589931755662099141254287343911893278350821572082878413334749597115638256294251152474349723125958237333851374757036222793941833968160092879895333296287214068655134156915365692265528777875811923804420767245755416271148153401226705907491797923663961728006931424290002872845950859204165665180342809641476584292090732832899014696892214801010010439015773528131897640541080361376587068301697701445713039666187617002933536198729452162844631908348124650212848611461474310479559854915486681440833793862662551104938118878909341660985358958389589754909707201312321071530773789311974099455108629409736896307201769419058230568466173958355541908395693710045505852555379928027656439200141930117003234574504133305598168175187717716155956617769935974905790095596820817907614732028562634883544500268108287619138240000205522023706330610644221960558066936147356443037335540333024835200251597849275036775583682039487518471043109279923946577553778259106188479175632906149329254712946793374489913438713925352148918100938983511362635008923463521948335526763241534212414635259483231419210378332960085724675231824792918716181515755319439162008854263182083384761159539482232809437025771605609341356388553800915964248735889022764209248196005232137718136192836933124911678493349637313848797220968106808445911548884763497114663596324110150648293574292588129833378082476447519638625093047980882426276415272851963034164540466826413000149629096056897917025109188526523154991882601356545478794419315655040900226076952466507513044100190294867117723219135670084365712748041240420390504972649011642562129402793919515165168744961043624296276201523000342386837085219093489789889407599570413204365839093603842327115446035988093862147827411987374397699180463951955480781955252600401319239249314424741834503877996569156323244848676014143860732171963932091753826658911025981021697811266045931666052045233857714563565135017619215973744572015341871334936684283512531103292708199476407245959140497155138719947555169198877798691302238504007210971196031567052272550208649053814721396199578624280729997545226648627210368451898435160072139890290770804886125051682899404264974356661136699542960510179186317175181702872156462117275280366214106412280445886135641311597184820903522629131714553833305335475607294059649325711786137048911169286251475874290762758035306255153418030521817328306207115243490212253844127444846978876819524387875519178635690291008657880645531519830095715097284953157047112307259023378816240330084576010420490601773484937302517598482838561679891032181180580802047803070181359083774555050235497935247109782128510180139952781320945442899445749851544595808307693539099123911095004843088843570286502314238372881309181889073799267245693569185616501430084210070122628151334017286189221671446391705531922789618266285849858377652747665478878846262909572112428659241700425813794683741479900474422963219931650954402070756615134298171449033391140588231671955293261232726751287768982696775056107380691336907527774249616812852270522240631495490172298716323537073519998660203024444976505551982032625738907960663405848802572992883119659647175175865849635601489171724297485545054644626632788926687037060652713842017181813913586931225660188813298883553406547803188397045922804074552764414608224049979954811232607307574687735977775674539484235383412451876206229928611167664251550548065031644455898802376867611182835857440264865452191380329948963550800337874716489222415323145629718496604165506022568835187734633454627138472645449398285935699676471170123960126516752321029880904937612908651530087667566096511890567125165272102499722721334579439435267158386130786317067996734775950484388027278410835062109720125510623904674290150358875714597658823964590883449336768385259960834792562821724920477847607034066269238304221452659538320160833731516178610430714973705909065562208393379489885394859617932990642022740767051561547026200391583611321524846827250599842762996523093055056284701040806847323721338858852344911104783129689689990655662760098752841726515147637716819196112933248891344177508625409599323002476080301194705221348591460821900269988603456748667644128794103572906552737910449802225430564563064813935299543166444829992449606658740662135720836624521819217197520657504502364298833924132096080033667220737836288746746675331985616308408508704767521723482521691338969475267585878465112332641606171627557960075140609901450822813214767812560007880754921185104880929086672383493027711283324110507245565247716555047821741433351280137488633405195131750369071575903242445585145041183897289703732843463063513455955355746446278444004630953169026894882821042990307371988504078615400532111584676770541803927520624073755999629284381726658371080345266426144893080245556839645584024340328858768228221641101929745105081773665993248653779919200759740600685730644567389020536588332093291591848404048126528137298721785252254159075855665413968359210491085573988819682019571810243086264537546112451885408269007920826740467576211852234602351909953704325243244792936643471188250732674556175970591458387110037825824604822921449155398853268676486961678484634460380145107621642011547395473774817965967663235648179144243829966953071849659161959854881799960382979773631778649549322827531405514948040581383270994536774213822207215758423296049562212177861511282272176533540237637799454138067702321928049489343847172615207464161814002021511257930461810117819896950294389088408675774684790283701319475945187826649848289586648503250353489189830723703897489599481219794032748976979980988796480685290006234511678065588972556837793896171863390042291150073434892040266806249938896980902185277204004139049758349696419340001770198876558697500221540454967558874938631923290939865023789738332063146284969832329051600937687240412932210619407658873448446643774960979046693387703538661783946967296304727863382786623398087544206256431187459069352614699564321500226544629925137893874322543282917222837494924056867040790557799892504744416332236422699537484694977319931702437883506133932152807825489417426332205208236855112715700008147646267541704206205193563594101840737571567033208093660009112642319327843782572247128411923863640906577705053956174334079498375045708985442676959401640224861543229133813688389755695328441409427002381892251967581214550352500083493908587673628865581307196167638446994692790583358811157991151067693082138206429900288553076489619955489257545576260553640055983163491534056914683126408693859199576148666971652128115124532753779420035756644183212330810655980025937770980945629618351798155685789843117127369832364384853170143612660093292870479927433388488178891956209859826321037919072812384040313595378349276245420650588635340795554367672701191745052780062290942650100556611941916034157124150287457170686259355672946871453796500353028507389061357450572730686171219048183992844195007699547663856961690141881563466068234365966533452601477339813466197043278593375735896188007042620144659725287811219496981508434453356064591333216207296816011405665090358341738449455886764988208500770116619484084456662224069797648977284708862916823378115280566822327188364216678736921771386007359094355918449448828462355347288393896926655516204255126692818670130576534177906419355167156701144560614086507650802311569622979436358153610764435085981039110975650894344758414653801167763182849412654521799639571913138035834590756596926018179913410875974604335352288330108597682615817694251474869374634660124699095023024355157356654886446472117941502891927555414901557697766744279226125174505040419661951289386771078858493128215169892684810680177386501291850300752291299034307908111221721730729202371533818984628206638130472169988831754446381046336508877463510045555666950228742566728403688831780124667585713943306617745382209275621250008102830907547108178982861732118055257022371867007953458542824058305013034786352668036552254223618487436880868257547979604208361782843555921925895671510389826661241560354492570036511335167079891319742068466914203872559172670103791931284163894694461143231834381504472724698146468632365145110411796801285238933744561213267278074883274786059991763884740282498420022898887320642402944778498074046194386945115281140195321909541132895252542884293367489539057190344105576934305984900589731904122374714538149257249150470114457388110938308389820414937454109620359584292491200918623777635504591904673946765516135836520937623766412124535948429376204907738328344353506764646233048172674437523987840028777921250981654019455294216836511105136219793999323557923051024248181338245312288800298731308866948400811570127121548620839029987706825431056816226687433997324735718800919830551830658161570711486872052285408384421923959562974796957522364918869946362931477219895189730184523952771115793635067440140438394004316501281719286415254964900207943300643100336217825249788924902727569819566957086480185407879867253741809416837977244567766753953872825852116776341046940391116614721123459881528040143716877015634029346554942443412739237267375347832206455139181947858857368786701141448938699596506189636531086069506619034569888517308306936499530937124173663110467567491080866352619254387300568202204790144377608033467367171401245200816152922450702563222215939050532466757371838647546777581293881272903349630537709993393936654051830246697070921949031324719857539928614870409924810624940582944551861800225919736292667593599513628453248943461494732184554459896922629869268347867945391947865812929750178099543478974913239799151457584961151218754506148949824662032512530617414544162953986145324042681465379984431087585485715119890530988131405511950771825820845408559553952088432396369059585668915227375509813074394788613098746911030770022671330586337361091848454410829155055098523274315208995011377811550436640555790257603117324004525669112096779947936318882476810826702910617378735590909157586290153382337134752301479097504133843143322423274092103094286693743405678362645839431424928621206825925508678473016894618395961437115411143853800428890547703550960197419387384038361490732224540020948233217851495575398836019805333131758832584668057756018388109977381312031513605777151157944389373735546436196819149496851996639779846571916852295077484552581777590674201637943578603069902093701399697071606359535990314057789753143387985074213699129299582706108775624492328834661148257714587486948575040569440161779929537767161153013776620956850695121319444543478402877880502141692487254245881383708334140184781157572057273712781593093891809041802809190524806593664801150349303695444014649331881828767750023146848846789117236798106601387070221204295195137336847166461769166565379518214785456371921568335039673402145621568340332168012110896319884985950128210096384918661844877357492828438522626450628053469426995785267252771075665771738591406847799871529761991540370934250235317571950380937820148941968210568190753334125736506482571752074582871002363414446724642088552561309621031221472014731786318918840158633552184052327476106551754382318585427005571335106383837033844048368116256527781631750139020962110612663021314797287278366052459621921557398920539088482832504888014634544770574326536154782090824545420687224802147195856206301356921752856898254950023006120719388442224445177598765207948107345523677221198860918800555898110489751506691170112550675889909147467743401050506659684716874947624115233045826524885722717420145754516879021788151628936934448310924381409697914659304762468523305869789783019238408932004140088963963279146831008563117752956079091936285898907993727571944848226898603603214793754798217146829857586080666799853730661913548470260502307427144804489255973070172307375431426572895077799804799547892178525029920073757391031558770901473527290424566020680999725698487004212884190527741134453137545050496333159165119490982133820181248900559702395546223712296829615679069115836895812967699565105148850461824295294038218094032680581836651405438993481959449795000576788216857241545214807543721622568029408414341556340217595626436127983918766101719482835101748817553923922761182210112473189122617906293549246848049046074478136420592800899622940807594459140422718285996716894352473393471459333460818546415169235136830719476402589789270559300042661506011855900713976664315949171246369660868824782020173660420663533840488117386423709706974518053297064863560382715002154058447920063681564146932168826382483350086699759599836045160622360061685658912229306833965939834633798499731278136401888648686959807084551861072064942550153060696214941461112644780838021944385397209825754494967804476752221145797036136236686631509037593009179012652371297540269797766318158649670679177926247357988179498218442834519160224709516896909270199510109894769883228226812411686556004049056289111758221845136032004000125819353094201994455346951739413227539453450642639817677677324982546158646360061535093238684079094927858316949199214550623262609778900197866097126882562775381573213605238203310630524044664640555489185663336408894951832178925562679307650052744185538655157371156706707411963528175455520311319432687926667898580442224936716208221816816343385437263330097366391447737543699038845664741803924151857917664282032356472883183868904586900531566830899481181547063964290126102352690970461043366366246059074083997000303221389055979104940386018805664871779853535750973751570292038350840541829037477511724775628883595346521403947290762630871281366365381859123365317385087398191811243624672651351663763260744614482592662276593315496488263370992599810160200415991197814620705437326012103318933880278007123355920277384629933664146811322688056324528595319102371045386642896629923004653928808114389045720033207945996050699795170136887606291614337474924004522582268263586037225831635995979007474499759037621314211823723938163915242052875688787515886234658605843177803169648276403327450586630059575739355740784793300250078977344395073371735968062490187834525024007070938525162854790362022178830332546780740061640146665853290894846282225678744985866400412934847560717138275036327228959992189112668176767975090725840867581614841799791790866558552546139436930376647242790626217911381700113482527109752112614513044232292510322029176851651875555573371046596615076440312739766194852650494399464419066457838136821925611779276709296282635052207307106317955993263533451644429921254794069254619204567750278358491154591048891559222548804460098436597924503391248620378004150088048235264125367405134853050274931776404840370016203738749413222134524681287014180809737838066573630199808159225935957310560216236165273260512393266608701326399372675488636004709536997811088322644795344165300007643307446279179776897133688404436541379104717800929934376817815301015686282437608310185926053522870436188763956328242581843998054836525431844778884311704082591635347185281302644231533172523245179754993521473569955848638615746528426764456332892004427086970386823166196639202134158389615906251051365645864133340197142904437929378955318115602788193239310306677202406423912574018186880534773404411078218040445632649628331748232772399372014989695035802847362471015784324156918730783347424139094981512172291520005286738500335862522084720503889185439445274411490178427322242509010451659284666181276140775331321654589446340693608483826683108869858311062467850367377818400936026061196898683744210915680025344253645555570702271313725147922899285821584516596795087218554697402061539196191660010618446210420956853637476980326199018435691254032022034317722812170996660504566945852063981482414316781465401244861665446626681370167098410953831409399864162872241809092419139332322031510331293478673837643440245859618272639004245498837777247036739149633169301505270118470249638629895203033380348817030938173525253254114984898088645626237836744380873785337113145094198958164344126378455124170562379955429927016859831194910009784933383916901109547547739665897974032825952748618557399650938637137440867566683938592212397971827133644071735909832688779034380191585414383104372078281803520172204690281798051691463266719653660667659137552306411166998857670167515730113364506103797588585093266659748447452571620441783812311336618912771983324918583517950454102388311614616588980724567098339424461877926914196052797988951458225798144779275357978079376554857572671911633102196717966763519206579935146707036235985156137320135087916348084773668055535800840904117695940962470288287712442165804236597116203514890993450985178167626458122973242945937774507037545046476937605007907387730337093797693904386604066830908584003755454634808649609780113716362205398819387030256523033442742610827242123241279659195806077543255705244793612622567437270671027714249814955698811060446794463189582442456836210190861643517782259508932411907979783975500633343075034837250579079341061063529452969923884056235759745840982398318548442707161855061584605747367285188582897915311825964427687522752780906496986540813692368145241192398801635210959548891473508892278995069765491346351912642668972167236192046272314017695480827479465131186068234386642069563598097373024331886094974564602037242499035842991188036968950957503463051671010208890747110517314527680193827840461673415917512103663150708267004785364223439558380572136582123248016078111640105568942874922599971923864419124677079851701997815063231374611472435319665777135643196448597927148367978220509483608322208343906150535698721775112378205858821999443474935178245542682458733695733315527186762674189707416348151386565690718704113483978149836886386843996264841455428920206306631567410940757198963705136356115966844242826993506781280113648665861793178609728358530905655720220516008951577706288967192741739628137446842341309111267640072125956116145439011286736537580056891992350790630588288479044078324752510009865348930802712962534686358084957497076780878158032684984941988072680140990669904960027912513972915977720178277120002133127800163132747590039739124047292693246926253897338122416006076731285700115114284026582514875648033137422460853095685288675432491048965954727453828467103800268051026052728664302078550695498575726760318582006177415935607302582527030925902979059940432243982208821352866387143248872133788339259384501255147019724526411344654459386001689181955653011299222458897928516290742957986465712959493135491205578663819709450277840721083775492076077950721149638841851970181324739913120279393617075724797537727522276584043583797664620803845166322608567927084604971485025738505496808748523606096605614044610356539324072299713045999449996204693026026871216143542261265559552545691856027831752421152207359790312544876451582296537291733440915276236111161387810920200774727716445738279579859630916581124479695637272759617630282451768077537878964375301586936355647756341357735248134796241422104316550673939091221183094022055192522506982124226713377618044887490198851848541300513318959453365365414169304235403834855044810852273250728497342473399719037453808934690465961370723042534082195773470569337930699589175415860304912719645716410966362145615933206114666153005464650050946095983131267411326164029032574312562596718845717145762607902359571833592136218042445812039175626753755791988785094514643692003244921223586630538495143935093110287369767073981315302248743925036923529518346982892518921456108088348395972582450542419790296780940102495783690141531283391900808704801744401792054908898497553328291337853547070391340689786357773164507168703587398409228658949338259590739520645532609593043928875292323648844315741022599351169887978848511926556117443078637151779842917929068406746633995772642842014383759869638989030073691343834420816731837333292726514121374317405758473484088291291033875324949021306835474703427285564490848637797327928404070317612036751309346653833838655487699113616680116418593083357131577690000347469082165754903198221956259259736075322343618522340977726810386476300128096334518600562595127785290512550049556195564874300578392495321812246868524222171257145496909492247420000641700521766255963325807708129491056812519219651405716381383936798135625618015969165234164686902063665994913350027853093584498346240483230990246907136067515407626269577721114166915147423250509656215376060443350142730170044019905579184472538024811399633223268449637150001320484188075686989071774422307175970903792375945176575539115874286959869977633120211904693462278245490616663693620092868909839673590716485488961863824019850537504238701449269232436105736241914484108742186551111719645706883962086593716493991182762411725319520232426166763023738228100601119290361567621113337252915129365675429394291451725308581545190900672949894818287421852598382680535733573342828337076333384240074177096582247603711118991157693532082409564165922337346827831144525261196258597515396447856648638690610467143978981621502460053482151075513049226523495182813726913635521125842452655368603272965699125597055272265380095946168476526149967810954821507992923395879714267316900448463852587992762254181099103706865534887855280144763746233265345144126737218028403514279687912700053012995156856934186166387624308001188751539733736675868337849819830839932943070627509058897398901523212482518298183970474591015281321119383580356336600546367850322495261296639305502115101690332108587143993359870143345907063387972643571834851471922173204435935056960894872821656020078186231815245202782276333570173049797418005233327567075795332991904163564544897537917937068900483274913454160432957925499278401652362978671525829973041555582479404280049312327152882233453866348518550533369888474348785185104030033848973971072619118524794419653545425382159680178673140170087262147870830588985693376837663852586415806569957171621303582198401635249559052274424603044294076155440594889866808096383749319923758959823199579497135383443936692640572188421590186908429248977991869722847262314804494753252854453504428826589516178096034924722957898449394118229448266125726151053222358190263221372752997953121569557313179427439397849469194147544489280571958445730008962796893042322892367087264288974289307251003189038266848786204075448183309967219897223491496782273323826321864293281570594473923862903792386981910257188014554448069367251020052673810443630423717096293651048177874387187464182267645606002423390512122820612980380845752147775635884947847403761848305495044933338779214360227836501953833898822892387416520556889386514902819531791359398571051487913922625732165409464974797722828856708212564351092580639392134495240066489477327448455142464086537183534240411863915252454424815276200345461641579593625299852296597794843163103125095742889941279048406173355546471029356693546247681582435363159004660586205430426717308688673554864949328632625779940332163629540562536385340522936086531976932582657669309499249789607637338273971492480846588239290837848510438084509375670604240897758428423621988656398960414598733461541389154853313820705663935754545137815221552421590800877788874951625392843521270672171968924686509921950712431854830072272574634705221019959213748370063328398846637993641949568112121047327852121380091367105558536573002271416972740729709810924011401580474837361038326323350069368059979025898996973598593001855885976842032188138291527737217631227548886867536989765807930975920146559829959247918771841837087869685891844043125116189615941967265474118916191560710381905561130413390532257077661642530434365239091060217169356425448459280545208718004370555229309278329363691858275885134468530236613701840260607141472648046745944653438848955716070300526899661316168888139389143033095302010914768172025485630441649273836962153516517828332700302874360937942315964725981170354166112773265277329784815374720914750448736436985977593897468935384682683558078864421296216908678895602643296982517892600296452617660599167840828002328009491348981420426094412749216917873217623923389668283302466339020532612316112002499812535322343411996818584904086658825901211382316293281298677468721136172496627148622076354521816584597139229076808606674189855882394503654493900023796233442328065983114358515745345764969832463957848428156178048250734418824623544061984974963950776094873962707319599277797289419730222744303773199673783482442172361637161183966773224698979413678299969871775040139662624182197260350661180249858423298584090552793700819323393032195021616367321980480642409704602960255012418646240137094903029854758895352052521933835296430242909658782164599539776957783068040458185961176730108938928119497682108842513263753479896695978164489136795204865674104664077674529472021105986102254992489932782308282127654319016756242086038630479033330101313518141102329787546253160436731928062932484070973620443289500487063241191149934912858706885517092060701828302719652963471279255300322515407829780480438220646921803282545063958988207847684975665512798848643841219104091570418106066643227942998533243594180466108944152812202955441029812037268423183993116034507587409824241779464906603827548781538965627918359064070065614598874779948387123702462296481569931140043372775104340874208071731440132967108129850471442796013608187135421098220063374529160029026437788204540005252863807696654205606487362024848037795304091161654343058760448180418263063474702304429826280429169839127442866702172205796510767076612117256204907836582810282226337023352149729259187471334108410084109853352652451037627074047979989208052905004496735898240205594839484096619192099769531567419118302136981999983051608821734912928915537556802000651232471789403319854046097851780232675972122111253968442624830658162902111029504536244912032200036863452590353504479395683411827456330011752777843260014469510526963283034151921612685458261044656868996305719312424982497903643159731753383114811035222494686788392793102042013322939801857501142178724883355858535563676849430392584726159717815814900813605041820166112962028828669736723185796893385363909726222101076113986813872005806897855468432154560207678141792617887500463070811010434877952534920934039359493496486876984288806511260232798633923394032330919650120733873868115351448611337341448850251271196066004440967861394016731908142542998179886405640694523919996711608151466968023512731745286045442538976215170216121072144034020050456533461296249796741119144465302911416605067100739586584901499448615676996014551722526034251979403713365509326942085920724550946233606542333731068223005460263574884768420582183954987524155973896750360701766759453045888247707601100543717609049669840887045308530108506647580273824363796787851393086297909979775611128401618310472941965155642861415734965698333386156227539893421329097400283539494126226078048042455707980010573648185054444842698811406928163375048905045605356980547906722128104986461076168326497757545081104118914588021131824783527308574969934185775654597108531451620044100194821517594536867420119134842722548636811568974678511318087738118814081729500680575303540240056052784532933783008979418722430560312118491557334537621938566922168941911901709187825837629835630526330575367517438063194509609979082825211140044476475351194843540121547934791707468498212017685062588601252567107774473051210789173887672226984820133610308287437552763815130981926362343128645537928202032826910067214976392762646799240084064340861996513962487656983610302954772106182121089660848818098364638912281243609494177055879482786180183264939671029990722174614919198343303645632018616503928015307315805291584287772551259035141542389002112879920574530152574410362253840982375588270132278298749052724896768664890740881362433646552295347053544088527807741758564398346475930368720707242186907715656692691984192901246481805565322066970582516703412297407145757552698667513464843229386541184773051773130367947349237433168980624273315769540706485795711322831933197121761515655021358810364652662322747630333314392865935093737183895371237578120309842752830544754465096637269876486932154215964430769920786189428534615233843747187974265395051725780025687589798486979725989246631130149780158722435454651004335593109111493623652558669934179557449569674372357372205435894932272395644081069636164383525315608272239014684108132588333212325564220640282015708270585887850250842194461778916726970278578038049499376952990861585895281713245526085849406093440328071362949141748927409463543218494985135133126941064145697849009175386865174711242270880716101975941225873093647523598769601293490032550462114615115786352319606401146265831112029946735769987611129293682899637659305671128358632409563098634403317504118058333265574923195578665817328017347150307587353216751523992379542301299273334252757228355061759382314412100239983197481306845827083821743193194436410498871581686366525513194586533418309923810660586674066750383064837049701560357667408052931797635271714957278302730024267218278124259473314674891420924937917656733222484430040681938382017702700256463129969873496767435831909622287232112687284459575233798037270097087361563480784903132848119601919119254201899626662124714074973096720065021608998600882870673471035371762052556247256580057031219076142295856432976866554323486658733207438037008856988420649487476505318730344838694527126682735078380952416602836283477844598879745914244310426726523421987945558717425073820138484502652927271822748995452244203783979676195772131836295946313472389866565922946395203749914794391258881331716666990075490308890832574692327896745039344759591942750410403394829844009182906912544971800794126376587984825072472605012262675528382187654351299627126667467491400646624327025827579626263415186218600200009875424898320693536297607123923084191180595842456055694709336806521556445482447303885184473109732295316637513240258474732721305731111147821999532423968776576733158783893025308753559054493066539517109903462360011467159019247299611112662823940725910506770861240301237178470244740122965568372386796522152916021381407194169084639561128012057261088658139003192171793325395389638587685117402013091368221790339245525973740236413681952184461165314019060307025187759968674327680246621199788643892057528802021924796525202069537898781714402930013305621269685394094674379076150064478629143293100990396066743177530051672445336406504975152897064510203431645319337986247990308942985648138500412240412013268749917608777805714127192182462227291002433852597117353290113236572742862493357290731171477353194975452459538980841695437054362712348886770287008632371698352521874070261944152897142592942264295297289234422486585564929901355038430195337168060454151222508570702690943452101254659313412715477986781201544229009155904922648486397984916485451367138741960023119208377307046110630630880123789773757627198286496554668652038433582507244606979915347107752794757634552033085621940888688030083997625041882172706111105768172665199351484824441583279720696771582584273276280378043522251064949848251943206635041049626712268996374159951882823743672635828904307699213929044583983599794106427972139382428978331841306063414719983610612659378871354973339931696498127382525031622185619698906631255019697230953893469975532080145529568871674385357516735013761430406560934436589044959834818880539908467156952634359974428335802101534433754671435772577286214940422255432121140114501198320126256457384478227563764039976515733773780329755222555258460992912768510664118349854348157390091501157384146445779120135461322364256001813086567217497716788963269389542420936586155828254644585993921934257837694029740697937760556697100948634214674166779881462626928126089074314265008582910072344680124916147846844572568402838636653647092933688460490890458130414014949445868621784863046230388874585717829600357419589091236139596261407897902519962994633996411490111352194073856022357757954105542718598736341680145061013116098600862236747299420386821175831024099448915010261954502572020773782751660436715523759748197802751824330558283715685851637649651857044162579695084852830330446822897115879369301977911475328113282270196205955492371393940407933666644372982933174330345585085476211965199086522103635269171779257149227773508165567790519968510947065260972086580360474792991407525602074780072788241040626172171294011710331499875485402086964192636500441166935829976515873150346912538307778722416537897100471634873200181091279908305869111397898416006606425732962117867962911076180761936726667931224985421580521581208176058239308578138492108500311995824632447397302359411993628027900059163570734544431868232913873425562314502318439972886711176833233585147950297013361873416173441534657871012694593973257543999677258124245014808052117555783161470141739905610524047443097433439603992438980426004215398840687539540036110035387333234592712765652113980476897153905643535064401414105358597848308776464429167094927662889895870213923028530425668690846510303112937544300700732641446411095752347839357996388978775395150584438885651506215227379311279079811608624640465235391499056887361437631587559728663451561801113095767192351060560021847653801537746904444504843068059475421238618185765181327760064396568331942410035504352049375735338740047987576996389734004618996408459181433384769262903493264857946365163669334995417706140901928115793094395095507728599410844662446339285150534784241133622374732797562599650165812432475179145094441318439153538994820901385309053429095583987309408066853544726643121313389577325872551692168958126413542057215862273713331531127716880204528668835499125234252845750481980787238111241640641726438533180161462104515988759975572258358212382733542594099721365913635775223996860753403242837932580259048205943821088453921687524271664065416839083499703831367974564428977358481968931076618051621073000794885017108730605904423283717777267319668519723762681625389604732867835265909529570780565964037822319269639553423180938199218381581811327995611630181785702172413869056449629266338286274946429772295700043469519999933721361436242970693545104586476567137696513630590769652355334839737064063991410570364844705601073585270838112999286712134908444038062239737955646588721955127941246961634968170387446005888305740037122603432863202196650691017384640552962274385067095071242251974112728824551395358406468819535835890623244505393220423321723172900365431697016417676612060533634169307301341481097835940031467942343183358556179799518706316557739299731017291568872977915855168468169940725888208737839881302094643475948657008578825098471618456342324529233145176671886272138192057030087477872828525953173852024456892722515930615296565215052239985959846956270337207061935404912668434910072540134273194610977346475415703291725298034550343139418782599150962052247025368685914043601442160547773769217880351320696612541317378993824920846876722538382759394412852146311706593706303201172096231843886368804615991370165157386889895441364709694113372155153624277265883025757561310026708561171353173942033681378210717628554670777350905214230801190480798970692000688164415579477699203488575231263301680012605393587500460345884999673174290304101769360284354633041377547557166254086804728207258445628119881702051612324311639025791781805494412105646475097277456946828004264179806571427990264654636750611948584248603810570884750151813805539544578242990518735916628470682825308104218499110735787789598554620318435714430628813904248172466933300217005741742025675756065994758400128950012167224947623778810785051269668440050462318628696052359637328098715887562855737126101503502328964706475946823968193144696436260842668440498285224796044002428612790327342630591064059671611034237703573328012532996771735258592958750997012412977295594504921679443766916626097550653697867291156955902748979738524818166599204473083592156850349143118227674731283135585717343846284843173093557864465407029518030829726955454757969912198174815107829660321216804748218213720647753243563348050834019209276485998646051218298413005050760584050011387776951903367626349353345813444187177901541157659672682784533872021418749190227636297824766665944137171174220374920731513883212483511707939346759620836447043048919885695378404846846760854376658515853511318439807854642851332248240011763404930744335748895236128808985082682201176270891755573589076713926675486443727974449522707866035354788851210414419645575875339943789652505482327579491918635446900951913416079551387219686001611020026888399210779917440966340900652555156140151886618477099071134318742958286731955442805079677171688798378726204463343659316140433481762859125018470967816612254090446780644837007538032458326536720250927755775470910265131570829952942152882532919392712391718603140392657264257212347325386093814106440920946664130428996517662762919912962854801723152027861573401727684623252566984122718919094435827230714215469745353427498493471713844505623093143347682551482294279763533568265756559108282118860101741821709599554031747291812625373694009587185869067035800308550056650749604368762965219451312062416364026856659776531472717917636900896058847810540395805759758094091447752034374017317165510790820597609448924670540289331807947898646614159929193915372058211080436878596357521075082628426362311096383949223324885158583196168327977350842654540258469675704137984033948299316584227705318713396438440540702639977454654643671991775806900920982292726130901064000501626798861154028661864312138301844155027359747699280144026085256217301455548146023130408539295972640112577612130402242428625597178629149085977788601622990671157961282672879237668642407645889630252919273578243136939431007969870318473586409304854901040616395343855787785680830450432736336680850695650219058038473117678717754977614878944295557255564959419904108940520236487710647967390775734497026246517889014118181343273674598663198133679558140805535805860624116779338301094341167561707924754066015638436390581482019014889209768354186522383191647339370324923961519800677709646944331607783958782585710980880345645482461645052345297611057082443305212768760174858344701773422447628929516534813925515830794808318089743266673046359615035432022392878572315656287541327068284036756819888880958232148372221876085125243191865767667110133278879391463226095256297993937553948104511049091462558705056903569852536172192297551661917846772062549513074603621336254009963643236197661515154828881515953738616370212292884222593304457832596243524174357685326929498867142671278971664770821332589917913092790336423292550394576233196328211036870239466840520485929287125268180973569819151358826657798690021883594001864436658150040764110208332687376221724506458639359960318224762944386987995712147302988744891790153949894949903363239251207351313961408087887455355414469416726225503218944116539910920161044126694189451612735343705345820777974003876130705053957549198907618227009941361554717793907009567769127739714397268821169079036526901684695608508735503648158289040851969674213165261658853205213464325620590352260581727298083896689506034398803906447740669714131503641526025287043277420658703808985535831311080813737336898271202529745947799996776520330483933512018040250753817852251709117521234233528185126271966787635638276653982282241018557668778504391502879456486167246715104933531328063272836505913095649692877144798635430866858268891328656515756154132717934464377024693865439864762605162978427312200545556575525362450591168916958972506090800954578496226806612464087838102984886790440729378271336138104477284207300608970667527959497693960728705168429182973426995356986689362867109282649347913021520166179266989856116122192332657640722367674277945585881666670101774655574485404767263565008523402686460449326739805801709192925616500234121098096195336598100111359814882302530965753890784278528563315281184389948099377729547227418359409489708341918168165079956003552207357944825814821247863472025688317177440782646705737020441668184544555935744907502724860322967460693401605389877228809996115483052244659803549336326163548264707361340277576413602129842437616189313286334791864515410800943504065250754934035361359139233246926427745907720588145543681240150030250998639169961629980860267880975324516713343272393317618053757503512417521335221677084317441499071202390474259590137479493751454986144944258924743475540534301563649773154550739565454617054881569146917808173146731575729615645921888632881850936292269219487832653006771971968168417904106892708433043763983810789600994576433431892688092209745137900777343960701017780486797564162588446243109266902529463237272296104070880135407633003041701185107377097079297053889839985169353297650970938478538828071513613005089430021336640499417777015738728712973894749952688019507095160148500794442462734643189160952368271690000737863853089267836487337200046224862586943102061131816982880518818091883519492338983939593928999334240328060421639987840760685710321879288826993589279996911913928986800964526211306609364852968486350599850354810578051541624656167229120579093454991049807417307083637441121021459950361735114864143179682131129374232410776512015018816405681460417839803525847136635226773675945327110504252658439902281524363392997258215490903926266500687139180445449395782209657373833777743277511900673873141772173534347605767660072176200219733084787584121876091745949664904261889828491197656346512012071762118084034847823850073677209718880735160893878344050416491341768571838212181594910844114283036845403099205593379315578891607278559901970462002301618707497425247542535183112884622576403440297138143152812367690023710996400751417447486011368752384944459999258145634999698465409693449311672822744957556505914501682287123705439042813536860205596047418247931230838456445620294156449347732030329414532301369845404337449755114590804838901464830197419385713049218475293550007129087596850285955931055207981664268680470278599880079174382918451698869398134709546860837669741617680358276285613564454330964162214543480651552078314521387163308596000631395473298416440193337177948966270894646125931382436484905085507662503824225972824081003897017144691469680445564735516251762684573541834909653242221815470799725360664345493231263899555661875565541799362362733823515986906873958101237652160356974154588808853233865269384858490552046232090473372680942675934581214817354282250006324440430834100198746194912951870387893951724435537546474443773380343736325299634015586912569120231495473192830826796637747617031252921385130354658545999295240895128740588294575223825084077745970917471695449645227191457669926282554946806576800720035369217114448332898177952291784567366263189306520446696706160183573576342396175598657297583396269952039213399319744040672405541174387401071198094620888863328053698886426663861861852401791740079925514010568440504336681913813191830124465353439200213701669520485683197932452959075189414695053761181287504078983914115574066071118429048258821458815474846117275266670246021603424318692436427997365915463468645364602815816949862352079684705307188459188248586358047368265215007237573406660463538704894155428441808472621810352480126237622776996819411926859527906754077680914339196176039731994271958599849858180658500271135439909996115176541017876590403731664497961005834918526710938771098318493150483527793814845293912448316921913899552119881453729836966216431418008120282165707353993233592522377463495461179161070908126723430818069842991257271322857882333906778280038224145751484555839504386632240578258064671325576227381972830118295470999988585697017324233525728584668337187915859222339838442075225570943528491779145716460143692350347637888118726312650745362583608046493099700343667931218831761099634655450746852034051020918375510251158155817946677790997708100402619717792822118173299317289651712503836239354394753715292330227613761738618215312619268081037418059481242055761463416860416102375798291375060190415563991968580741562762695864060636376741145550712633219269847053424721920976235219277914494368921031404667159854368985236290226640042265152482024316518404685114468721783684806557821686502566454427379303004799490321737923049364902171183166059281015224916711784624435973469700371380701446670950261343539913508693570922284339622051698174812376371877728237086596020835363526001314796633312686558980390864337817766036962667402271883869869995384209171363411182639355221908910251609511235229501264373947197193742033701470771948286669727629274331272185324099615195506787722059771706271932508008795814831520083469541645819906329999371188462996605882850826361737523513533802884331515561693929607656222375313244528254380241707031316402814947443463845163472637542592185560860015771206560863135587442889711800951570914818587627394531460960920405704178933524635018366440630653053672837180472639371791715513890717919570992539619443666346727994842227939915798637781311617425531391175975496119405236747745976059145347367022845504832355401456234073208075511123291772102258302847524304856566001787498311004281064517984300350868447531666785606063691469978790387545892557386729058625606715488754174274578121313424836951246488168408504172806361125291473927088570940068391420909059259517906917854405914928643843653351064072140533342273163684013987717952250698268065315808688195167707519798679221905756344475273593537708492806580870012867530483333953804633446283792228740857995303625323501558629291626773428041425549511709770731034163985283150836374049950444464234531404680894447295321884905357089492080499995303268070374053734252105983881396636883007176636601017809440809921592045453653013884110589575465133360674019624934121829528557942665382520445199367838854754657166531298488493835013683468659482087495976027477399194704182158187185774001822866650950463363182348647672293540422926951554041084091806257399342552856856912863717923621603785441490031165470212894194626490960676682224220344782456633530140138709659872291757688284950610838219665331808786185988943423201449687415860159799432041594779939619471021137622307764374527477298795225053028470502314512500426191642290500159475630283849348537328365481560608673211303162540003210580136480558413620853892133029286498579745010745495747584368634067029798201766612731085599982861553893693658579308390018675048565095839845856003921991220974089315168482926300279656772843360031658288489073217602251131975891674044115245453239885275660404258466848771050853668439946389090690219479200990530418205299947452172796996081790632883329463545031128461794265873266934206140965282820183352576375045131850272412443067847502788128243763266785675522319090204028441761037632864030060733735178854346934049066558515123333307895159943050932740812919453719423932945423831939342953411137783437547257218789551112559666974840299445153546325135765264192544421526210894185372464500461098057905919860548695979426747509478737394592507454898739619827988700485867817516219014905376197689695899627375734833922527904146994233778591507482208755180387930534740231553640306054296570766544513520038619276196026612021551399761802838393252307684974419601027627669231442525965135484222245429592530201976364329753262167389379337627836821905985674103072160076982520967233586939122654951075575671994994039792315029400159899819088655625826199082569960731953502443905606275940870313237296960429762118472252770289518557811257965592427517921346487893308161086340419319366106906456885074711469874343053740058927040734614046798151054281544302619735829279799408414218698359769048346177247576451395214901605327109048793734947875776533194400191920603167433070307395403003285111924311745921985500975641565466877936124557317127519811386456069179704597852481050656217762752608064386021145937188866466025532521509194975563840310414136824172350788496116568727566893718076274567336946646147772777333042353219904915950900328706120754667244422341179865116899711773706856149137929444208838317078808866720144209871816858666792747167624162211175230836999150646284444565073237876160372465603373808012250284723359245829579989948011829664790390299272931848751329748580392896732040924510916408171380250965629442015481215833738917076471589715058582144048273107783845322533605315622296822911768814615593031033039401587201704143214470702870023418634741121571209399320267818887186399135795197023123460241138492169699873597233203723837943584767998848989282575365581916555469764542624465800669115457475714186284085998025885891492882621586796558215972214705165458810920933852752088877228636044547671311159337777475532612805072664451542403393070603167217405241564222160823239462133904672710234051794328720683751509727683177895438073690528699654243863185361373757099772616310882488267471237590132279642939855549103905182697073978048275292580180755236308270890672538728023846969785161053267913458207458086345092631591375314276929311043001969015018300276129847654113220717239429708392522034663416984799559957039866560047243538259358208849756291568548462148087612504540498207015710100728009901883362164793973761841482939412233273445166943035238594849125580966605861250852752849950348460877801248638866429426190185534647276239354225379531762222950360329205507736399667136234062485172996419317935025091624739950692165356784861771899660961783240062169940955236994172081242008787890182852276381178873347085616213181159545590578431855804659728802836500422768000673464719524963079124951375186221990200402200591686232602203114402661600145889724755153298511096212836186384785411986702424873934489327707195018867046379530123058537119893143515675723624058952941823671813962214078612505240709420689337367259934107903248677871973043401922048864606723306193703250625210047764380656922514959774546689763852330804855471407243239577988599140012449956502591876747752609180533010724160760361485952360232519336030054919142898896718067473209695533146837412609592814433221458285164397157402044474973409667506717350322354574894972583783651957125617419953565348050957729345199086557534740172310404382551947959369092782998365196236259042991612286584128613552226390277642562594671561864249346106903309693405489637067913299804551598927876335416606262301318034450772709551544042619406547724214454241568458980884128867013721282867817391218822884554015837300439012265503594669669398938317439509387528575197409396878521669591401892431270886293058825361489316062070403851534455385549042981921487008805639388385153977837927279063615281339236696218568456183466223713855154837039147535713492706262429918465536822658274843490439321890577594494023231431669834427345941197026980088086616161269900204788894097025798641491809221281388475559722539010928409707587507989622933191767970894422098491135362138239214961045328766171622987966027237741194185608058713196453571671589514323214710524019297423110869739755493983699543426351649686679396833443376827037439682067854576123544728310159835775605605258583945351851710612888655770614384452872818297979200045629194685310063078408147751310402977515610314150973201601050401784968186021167969228815097854160810766013364903888543184038888922080416443020707786707995517594050358372052550474136445100588242094491543146432087256979230984384554999489728531816163059676722609892619319652245904021250722317236691525854727668351496760973776164970692039305442737599482480193263555239425732083503466100930140839511442484351829138258773898585473682061141607415313038513933233720162530992449525015796035607059761429712980163785023016446561304254525559419793655079552431056034394034379958960304544863756661831754744965293247118098381965730071790407703662833188240511944820058563935318152630714813326367836431106578794472988639150127608206728306557570459652476811749107116342029570515430004736463129203555410777195468945365205740736016419041141461968018139272642411329798368119291428159488046660641942624848835532499690703428943898388440012619212649335096809483055439332585851541984832490467549910029141657574414773903253863505149688455335989100659553927334904924110405429869995963077983252236243508631403458375679759308153273894681754598616444268514340226720384955861795151014460370131997449349017115568754162762078357117658613393790795070091132120191843354150308259571996456898836213870407016969144121882468166054851812704492576960115439578293745620380425946004835043672856637673189323408177276013641437183451020407954616570765836020855710971251388943936751101364507746755949774166695179271808946151903416210031587436129652439390757467990683407239166219843761119153766698579496079326348738961552216936592579909340700883051351960288555166536122094680362121630701361540257102295339725763163815617472590401224665350732430961882732067960997994921306620116196851223253068443479261747445568562140037494695331250191089307711881054181197151806241426768075524299299571861859624973436202022447068561985688316784306893168789711237059539288483783061454056922123410320715570367305745357808185434843732977855899410700192933984200869088348482361190339416190371578281135084241199754965496983804261336942436359621961673692550659948570605165566918945011418020732861104709371465549117848351739458933279335120333630690097323111794924816082847458849705474792162308401717167977007876845689763376469308217475133848630272864786880643560746504954579596242441414926005220263908985341430402911949486750034655419536000450375101254163920330876815966357566703601677572623395814668915862415957337057350817783169554286791049616755785943121793769737762442462066600669481693473251736168506483093139635279107286865843089463859194977892318703647954659153982567002819771173738711600072556587547425958553835188350287645551514644627023231458284456241326001470329358092697105029121853559986090427402345585035434753679589595493198686605691723370972781431103214534982148578491668022710909280152871330974238915046321864100700034023074480437573307925564774063188521469364504464154240261245954654015477463861469937971952855374002833081535130855766728993295730608963309845706366085047769498022789222088766981039096038869767622522980880547241584225484348938860801142960262908342717095127425804460536749814006318495983074544814107626956349677913707610732625838290874736168181989751411603635786243790162558745746738579407570065275142957242107295270970697387241677252032333957359253307599156046405860466153471566917261549151415573504733766364704961206832686470391880003464640806524263679702666797925159605077458573876356291187469762273256087595854541219224889044754757350883458721892025150945736760079871637119650079615736090485705174852222001699128171662711621617660334796156837465455287721531369596456857383831878894584168846949919873723208207157633254535517812215165723633152241868829978244524113062696314090864065577072319757335785667646680957842720471879740871140693069692009020436208469826547244548789563158785189906782902209591820137875649731450179176514503595426443452733369722512130973834883392006116708430240622007778190482687591409236975330700387012902873574448607555258334684710691851116059719636632490715981270118109703208127704357999815107514739439692613472500516262818825247476084142456017113002834720685841309501194823148537382945253601039085156046202093463448134169357839031154857693129501535268072278369279513105353250314452300919986237905432071149765485958406079286640758966220218552528441048689346294467388772033737222031827123022351340286583952234293472449220725404611822254555901820625223273539810876930754595051990064180865239647940882681088305708659541038759981366071373400140908171644956299539474332328914785896929196054130933462426562021182991021735536079219020961823661452851646147226498411739936463564503029844121723328703158454866669203196456489875957033971956471539169922217345001288013467222722369826953171154605015202280639113003021036355559954603619403273634461503957534008977994255847640977636709243054974202420140625980778090797803182390552711401809748899504087696187084894210974189993290364501266847011528646311187193764142508439586990337681804044655965246732354598351676994372523989986976278255385610535631073502424147922770093062954139379769887605051472857595774575694113197938366968733868296851804678199454275330998759585297378676897804405454742730631988313968448265295092490132161488584557668247662971788105861392446554332833747447192179014739628851394157901721492533813721966333133721509923349858974555788415602320318907170070779100191964627405540581116370985277499175643438163059034550771550005124276798950169411221953810994480067252606189247133933950604523808320620406248924170149245823312518957092800488137300690568022080907020259799747345724336137352436099253907452271086555642462634588628981810918670554978101472516977728017418257912035513196188040962907576070908141061643876872813509797785249769918023515404211324486596810271760845579275488923086772621679650517857351836804646160705718622298951099070907495498954486843224889303197571166952222602220340615571547658403601530070369558021687376128286705356806017955540727287186627731939568513656598795099063071909394485401113557268706198790098732496372293419985751402865815823633155246973903135389519025499282173767049214848368154651230101465629218440115776643943248328172058624979335301460394366641581104496744538009872290891547053587073252918910153135856120157102558927427379161669650373001175439344648648091392446563009653361817204717631546229268583233808556956849525616984564891639147969680401596363285832639070132141474529741682003942634901382793200516453326772872086371371580989295102103463409074880220173247645250966305366068819304784206794099879009145072753961417762504701962467210273908121904731721640621752377070050639532439015105476817671662947241582073430903814925718537588549037445712849425756625898089490459952271967124863172530590490931506551627072117763259886206145947151104250660500160673213712325972230073944321371337132421792819658609310657311820997476966200350560555361017573498719763044213334794424420660252883097626099797789261031502309261181456972990276113169404599788921135704155673121079372651002483254509652324367583632060777921038385810350477404611037076653914070677670687528087470308695799374947239235195730579979738678671712794364085864136957246126581336520467319938247425016819872106573416160859850950285174635504813544140647566448055181561396881887547949409822131329037421770492144267100132571437134987436355628414828823259706400782565770643054370778276469241437394952583937455852826459804233776026264840223763277455517148168286024975017483616319460659251099355353923503486038785342268084220382695824257658069464761834991933485706559138556268747651848615992298108012904099859235163887162591170218804295539579276309613811346356745525773987171060928126346057738660865454207389483533411549544261527908349646437070976751691182695251029319595352230797428120421633611364645009854618572472370410512365820465059752789373766726013583209626054479108562223521868641431174613008585601910524840959457878450748544035948403422984177620804958128474453423959975670104712178299679649734171202883766005653668870879100545181522397239084668542789211915253468126973763247846065535648284076347053920131075210943246252258698504005034010973002457120970364256646100702025491016125986258003885418939505222796922746337605527100559394084722508954800652578727999407553145743840571321754475260930150237572878990092352697523931619212013648408899339151019791167846873889284281940217072982479678213660426986497711725610508237750482609811545647881581438270390871666023284531522095976935946340943471096555334130755294361258505482068605428440037680418296482423769215006405742757254454801564151050531434802280742342746897977660290264458022311867209311861405329801910030359242881341135984220993631050538842386404489865193878574427606745451716794374192572753171744256440469346370349012062201006826846574875523341554520998819503949876240304881470227977712251672480153218013405749306860238759774351549902842776390898700809175471656257401812910680497611254932622602318146198187702380298944929155879023957219431141684872442153111724533609334578398839316972871091487291339022830614259607722164297623372581961075023546175967182965954835142548399478240300246735245679808321313467721152196489870471363182325162661127521435605300277959522699177531656983525184364472379839846736282850267205422170985249969453596322136462802900313832559482979294635869657198449854219620717613234044268149065703165646457806177211265987910076788480850656680316297824940313445478991536914164002435476655691243699545917091735375838868397013168793708192261517041714627130612462922535811362193784474347569828511847247973209388699234760739356891130883218045516439490544612948290422906046428489586801449334548724781637537941128754045617985490113102331409879176944260360265308289929898082866918676243001907451114823972060649775796262307157926767595215266975629963501235321390611848389992560887933676314196399006658184480080983191557888021145464592521606967406851613402982699305343993193968302239140764615319539058836577664798548476585507487857876429443893192918342298141723591555254283891603650570731344899608373049766380451193378747303829766429510043328404730109298627472224375753482039994714886284625040013428686878864070056799747885526439675502843131910095140882777091467745730440141370762970712805339970993306451675714028745615941889154456566348953886861698122938838676879835396032046995169290387678681426643137573448704484561448956034981780064038384612857171440715682355325285520678919511926855703377658195745372034000508955946973560658948716757250108892588402784213566555499778227930320728816732575617045272890205100830053124914996415267956105536032179160567625494663239241456767127833942047200283737114062184726438244735329885498750444926325214959478096850119798575190466582482788735866776771256499105262680762205175207907109686132089321611623383672169739735402014899547371909378166620461997299799832083706659627019634125363936819415463318114142434311592039089267638550025462964672571455630976063464174850735006937527947633382645790628551720016141165926033517203575435161822050178805593621520382012134604096844789084566230285785539958446565108434765014956090032159117403356776980219370308140073315917188751118028685166520866948057902717577604108276429467571053797600493706256924530733542430769337240073482383195377635089677371390710217873175926745709464922321003465841525144752471229053150202780428540987978027791988698601900974399147341465198092436207429323511099738806604458950159189662132478523962688025256728211768163338385772911692041998452398231709621540152822844161663065975791649164481475688632708410418513405648970714379022087707637613196012670547661719602631928405311095061869118546939939842880393135179989299816590792261102544192230959652690576163805866374607026592216820390005266935703378638249883409239269890110998146549857152561807954399462933331277393357170493852954003036349545063391612427878438568365908967840689147191245634407572410729181743063022785218339105900458255563364493575483483833224091086405435570536905068664405777519000670544382292315573166857519104